Go mobile or go home
Cell phones, smartphones and tablets, oh my. These devices are increasingly becoming the computer of choice for people. This certainly changes the game for desktop-oriented developers to adjust their outlook. While many developers have made the transition, others haven’t.
A few stats about going mobile:
- 50% of the 7.5 billion people use a smartphone
- 50% of world’s web traffic come from mobile phones
- 2.1 billion people worldwide own a smartphone
- 77% of Americans own a smartphone
- 51% of Americans own a tablet computer
- 10% of Americans use only a smartphone to connect to the internet
And these rates are growing. Rapidly. Is your company positioned to create the mobile applications wanted by your prospects, leads and clients?
Types of mobile app development
Even without any stats, you know it’s required to be in the mobile apps game, right? Below are some common tools for building mobile apps.
iOS Development
iOS apps are an obvious and important player with nearly 18% of the smartphone market. Let’s touch on the two most common tools for iOS development.
Objective C
Objective-C is the primary programming language for writing iOS mobile apps. It’s a superset of the C programming language and provides object-oriented capabilities and a dynamic runtime. Objective-C is a thin layer, and strict superset, sitting atop the long time and popular C language. This makes it possible to compile any C program with any Objective-C compiler, and to freely include C language code blocks.
Swift
Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple. Swift is becoming the de-facto program language for creating responsive, consumer-facing applications. It was designed to scale from “Hello World” to an entire operating system. It’s intent is to make app development easier and more approachable than with any other development tool. Benefits over Objective-C include:
- Easier to read. Swift is not bound by many Objective-C legacy conventions (e.g. no semicolons needed to terminate statements).
- Easier to maintain. Swift combines code and header files. Less code to manage.
- Safer. Less crashing of code and more errors generated at compile time.
- Better memory management. Programmers can focus on logic vs trying to optimize a computer’s RAM.
- Less code. Reduced code complexity means reduced code. Amen to that.
- Faster code: Apple is dedicated to Swift. It’s run-time performance shows that from many independent labs.
Android Development
Almost 82% of the smartphone market belongs to Android. Wow, huh. Develop apps for Android and iOS, you’ll address to 96.8% of the smartphone market.
Java
Java is the popular programming language developed by Sun Microsystems. It’s the language used to develop android applications. Developed long after C and C++, Java incorporates many powerful features of those languages while addressing some of their drawbacks Code features include:
- Easy to learn and understand
- Designed to work and be secure on any platform, using virtual machines
- It’s object-oriented, modelling the analog world
Using Java + Android Studio = build world class Android mobile apps.
Android Studio
Android Studio provides the fastest tools for building apps on every type of Android device. It helps developers code, edit, debug, and deploy Android apps. It has a flexible build system, and an instant build/deploy feature, allowing developers to focus on building unique, high quality apps. Additional features include:
- Advanced code completion. Developers write lots of code. Code completion allows them to write less and move on the next line faster.
- Intuitive UI. New or old to the environment, the UI is easy to use and be productive.
- Project organization. Again, it’s intuitive to organize and manage projects, centered around modules.
- Quick. Stable. Fast. Android Studio is a solid and will build most of your projects in 30 seconds versus a few minutes, like Eclipse for instance.
- “Instant Run”. Change code, see how it runs, instantly. No need to recompile. Use this to accelerate edit, build, run cycles.
Hybrid Development
First, some ground work.
Native apps are specific to a given mobile platform (iOS or Android) using the development tools and language for the respective platform (e.g., Xcode and Objective-C with iOS, Android Studio and Java with Android). Native apps look and perform the best.
HTML5 apps use standard web technologies- typically HTML5, JavaScript and CSS. Developers can write code once, to run their apps on any platform.
Hybrid apps make it possible to embed HTML5 apps inside a thin native container, combining the best (and worst) elements of native and HTML5 apps.
Native
- Advanced UI interactions
- Fastest performance
- App store distribution
Hybrid
- Web developer skills
- Access to native platform
- App store distribution
HTML 5
- Web developer skills
- Instant updates
- Unrestricted distribution
PhoneGap
PhoneGap (created by Adobe) is a desktop application (for Mac OS X and Windows) for creating hybrid apps. PhoneGap developers focus mostly on the user interface using HTML, CSS and JavaScript. PhoneGap’s development tools bundle these files into a platform-specific deployment packages (iOS, Android, Windows 8, and more).
Hybrid Development
React Native is a tool for building native mobile applications. It lets you build apps using only JavaScript. It uses the same design as React (a popular JavaScript library for building user interfaces), for developers to compose a rich mobile UI from declarative components. React Native uses the same fundamental UI building blocks as regular iOS and Android apps. You just put those building blocks together using JavaScript and React.
Hire for mobile app development
As you can see, mobile usage is nearly ubiquitous. Are you all in for developing a mobile application for your business? A few topics to consider for hiring a mobile app developer.
What mobile apps have they developed?
Qualified candidates should be eager to give you a list of apps they’ve created or helped create. Get links to each app in the various app stores (such as, Apple and Android). Use this information to gauge if they have the skills and experience for the applications you want to build.
Can you talk with their current and past clients?
Talk to the people who can verify the candidate developer created the said applications. Too, this gives you an opportunity to check how reliable, trustworthy and skilled the were. Did they deliver under pressure, on time, and within budget?
How will you communicate during the development process?
The quality of your application often depends on how clearly and often developers communicate design, requirements, issues and more. Do they prefer to talk in person or via phone, chat or email? Do they use any popular tools, like: Basecamp, Skype, Slack, Google Docs and other common tools for collaborating? How often will they provide status updates? Proactively?
How will they test the app?
Know where their head’s at around testing and how they will address, log and fix bugs. Better to test features as their being built. This allows you to be at a known state of done. Otherwise, you’ll have a collection of features built, with bugs still remaining across all features.
Are they interested in your business?
A good development shop or developer should be able to help you more than just ‘code it up’. Can they provide creative input based on past experience and with similar apps? The good ones know what things work, what doesn’t, based on working with many clients.
Can you build a relationship with them?
Mobile app development is more than a one-time activity. Apps go through many evolutions and cycles based on continuous user feedback. Hire someone to see it through beyond just initial development and deployment.