Speaking the language: A deep dive Into mobile programming, Part 1: Using a web browser vs. a dedicated application
Developing mobile applications is a process of asking questions, making choices and making executions. The most important questions, which must be addressed in the planning stages, involve purpose. Which business goals will the completed app help an enterprise achieve? What are the specific needs of the user?
These questions cannot be adequately addressed without input from business stakeholders and users. Once answers are determined, developers have both a goal and a framework for making further mobile programming decisions down the road.
The next big decision for developers is choosing which mobile programming tools to use for the planned app. The number of options available for development tools can be overwhelming, though they are typically restricted by the expertise of the development team. For example, it would make sense for a developer to use C++ if he or she had deep knowledge of C++ but no experience with Ruby or Python.
Select your app format
Still, there are three basic formats for mobile applications: native, web-based and hybrid. The type of format used will help guide the developer’s (or development team’s) selection of tools and ensure programming and design decisions.
Native mobile apps are those that users download from Apple’s App Store, Google Play and third-party sites. Native apps are software programs built to run on specific platforms and devices. The challenge with native apps is that developers must build a distinct version of the app for each platform and device. Otherwise, usability and functionality issues will arise.
In contrast, web-based mobile apps are platform-independent because they are built to be accessed through a web browser from a back-end server, not to be installed on a specific device. Hybrid apps are built using web code and software developer kits with native capabilities, allowing deployment across multiple platforms. Hybrid apps are also easier to update than native apps.
Though native apps typically require multiple programming languages to build for specific operating systems and devices, they also have several advantages over web-based apps, including the ability to access a device’s camera or microphone and a higher level of customization. However, because different versions must be built for each OS and platform, native apps take longer and cost more money to develop.
Web-based apps, on the other hand, are easier to secure and integrate with existing infrastructure and back-end services and can be developed more quickly and at a lower cost.
Pick your tools
Determining the app’s format narrows down the choice of mobile programming tools for developers, though building native apps to run on multiple platforms may necessitate using multiple programming languages. Mobile tools fall into two basic categories: web-based and object-oriented.
Choose your language(s)
For developers building native apps to run on Apple’s iOS-powered iPhones and iPads, the language of choice for many years has been Objective-C. However, Swift is now emerging as a better object-oriented alternative because it’s less cluttered and easier to learn than Objective-C.
Developers building native apps for large enterprises can leverage Python’s advanced data structures and dynamic semantics to quickly test and debug code that can be reused with other apps.
Java is the language used by Android developers because it enables them to build code to run in multiple environments — a critical feature since Google’s mobile OS includes many flavors and iterations. HTML5 is almost unavoidable for developers who want to build web-based apps because of its roots in HTML. However, HTML5 still isn’t a standard, so code may require tweaks after the fact.
Asking the right questions will help a development team determine the right language to use for a mobile app, ensuring it provides the best experience for users.
Check back soon for “Speaking the language: A deep dive Into mobile programming, Part 2,” which will discuss what you should consider when selecting a mobile programming language.