Hello, world. I’m Buster (Adam Leone), a new member of the Embarcadero team as a software development intern. I’m primarily working with Jim McKeeth and will be focused on refreshing my stale college-era programming skills, learning the range of Embarcadero tools, and pivoting my military project management experience into the tech world. Expect to see me periodically blogging about the RAD Studio IDE and related features from a newcomer’s perspective. I’m especially interested in supporting developers entering the Embarcadero environment by documenting solutions to problems I encounter.
My focus last week centered on mobile app development with RAD Studio tools and was a great experience. It is positively delightful to prototype an app idea and see it appear in my hand within five minutes. My first attempt at Android development in 2012 involved a complicated dance attempting to pair XML style with the back-end code. It was a nightmare. RAD Studio abstracts that pain away into an awesome development environment for the novice programmer. I especially appreciate the multi-device project template that compiles to Android, iOS, or Windows, offering me maximum flexibility with minimal system-specific distractions. After learning the basics of these tools and how to interact with phone hardware, app ideas pop into my head constantly and I’m finally able to respond to my wife’s small business needs with a quick prototype.
My recommendations for those getting started with RAD Studio mobile development:
- Start with the Embarcadero mobile tutorials and type out the code rather than cloning their github sample code.
- Search for tutorial videos on Youtube. Embarcadero posts tutorial videos, skill sprints, and other content by their MVP team that demonstrate components and interoperability.
- Lean heavily on the Embarcadero DocWiki (API documentation and more). Get used to the standard methods each object inherits so you can see through them to class-specific methods. Pay special attention to the parent classes – some components from different packages with similar names won’t interface smoothly (i.e. Data.DB.TDataSet and DataSnap.Db.TClientDataSet).
Lessons I’ve learned so far:
- Use the search keywords ‘Embarcadero’, ‘Delphi’, and ‘C++Builder’ when scouring forums for a solution to your problem. The answer may be directed toward just one audience but the solution is usually universal.
- Embarcadero tutorials show Delphi and C++ code samples side-by-side, making it easy to see the similarities and syntactic differences. Learn both languages so you can tap into two long-established bodies of programming knowledge.
- If a Delphi code snippet says to include a package (“
Data.DB” clause), you can usually add “.hpp” to the package in C++. i.e.
- If your mobile app compiles/runs but is missing functionality, carefully check that the proper permissions were granted. The primary culprit is usually the iOS/Android operating system (Settings->Apps->Permissions) but also check inside RAD Studios (Project->Options->Application->Uses Permissions) to make sure the project is built with the correct authorities.
- When using external APIs, you may have to enable functionality from that system. Google Maps is a poignant example – the Embarcadero tutorial to use the Maps API is correct but misses the (potentially new) requirement for developers to enable the Maps API from the Google Developer Console. Once that switch is thrown, everything works.
- Be sure to download all .dll files or other extensions mentioned in tutorials. It’s basic but I’ve already overlooked this twice and been stumped by non-obvious configuration issues. A great example are the SQLite3.dll files required for the FireDAC database package to connect to a SQLite file (more on that in a future post).
I look forward to capturing my internship journey and sharing my solutions, discoveries, and passions with you!