Finding a Mobile App Developer that does their job well can be challenging if you don't have a systematic approach and plan. Here is what you should do in each stage of the recruitment process, explained through helpful tips and checklists to help you oversee the process easier.
About mobile app development
Mobile app development consists of creating software for Android and iOS operating systems and wireless and small devices, such as tablets and smartphones.
Mobile app development and web app development are similar in the sense that both are traditional (mainstream) development methods, with one big difference – when developers create mobile apps, the apps are written specifically for the device's unique features, such as camera, Bluetooth, GPS, microphone, and others.
The developers write the code for the specific software by choosing from several app development frameworks and then moving on to designing an app.
What do you need to develop?
Before you start any engagement, you must know what type of app you need to develop. Let's see the kinds of apps.
Apps are divided in:
-
Native mobile apps – Apps that can be downloaded and installed on the mobile device. For example, if a native mobile app is for Android, the codebase of that app will be suitable for publishing on the Google Play store, among other stores, of course.
-
Progressive web apps (PWAs) – The PWAs are apps that are delivered via the web, and they typically use “common” web technologies (HTML + CSS + JavaScript or Ruby) and are often based on any number of frontend frameworks. Users can access these apps from the web browser of a mobile phone, and these apps have a responsive design that works well on any mobile system.
-
Hybrid mobile app – The hybrid apps are web apps that have a native shell, so they appear as a native app but run inside a browser-like environment (or referred to as WebView), and every mobile browser works this way.
What category of app do you need?
These are the most common categories of mobile apps for businesses:
-
Games & interactive – A good choice when you need to create a dynamic experience for the customers and make them engage with one another. These include games or certain online shopping apps.
-
Loyalty – These apps are best for providing certain user benefits, such as collecting rewards, coupons, discounts, special offers, and similar.
-
Content – These apps are perfect for providing content for the business, for example, blogging, vlogging, or publishing helpful content for specific audiences.
-
Schedule and reservation – The perfect solution for those in the travel and hospitality industries.
-
Customer service – These apps are specifically tailored to cater to customers' questions and inquiries, providing FAQs and assistance.
-
Shopping – This is perfect for those in retail and suitable for any business size.
-
FinTech – This industry is rapidly growing, focusing on technology and financial services (payment processing, currencies, etc.).
Why do you need to hire a Mobile App Developer?
You need to hire a Mobile App Developer if you need:
-
Less operational costs and driving more significant profit
-
An innovative approach for creating superb apps
-
Satisfied customers with a meaningful app experience
-
Accessing more in-depth user insights
-
Improved brand awareness
-
Immediate customer service
-
Getting feedback in real-time
-
Scaling your business and staying competitive
Interviewing a Mobile App Developer
For a relevant assessment of all candidates, be prepared with a checklist for technical skills and a list of interview questions (and answers). Even though communication skills also belong in the assessment segments, put almost all of the focus on technical skills.
Technical skills checklist
-
Expertise in backend computing – Knowledge in backend technologies is not mandatory, and it's most common in those with fullstack experience. For the most part, a developer should know how to access data provided by the backend developer easily. Ideally, they will be proficient in one (maximum two) of the following cross-platform technologies: Flutter, React Native, Ionic, Xamarin, NativeScript, or Apache Cordova. It's important to note that the Mobile App Developer needs to know either some of these cross-platform technologies above or native application development (Java/Kotlin for Android and Swift/Objective-C for iOS).
-
Good knowledge in specific programming languages – It's important to note that if the developer has specialized working with native features (such as Android developer working on low-level tasks including C++), they'll probably need to know Java/Kotlin and C++ proficiently. Other than that, some developers might even know Swift or Dart, but this is entirely optional.
-
Excellent knowledge of frontend development – The Mobile App Developer needs to know how the frontend will look, i.e., they need to plan the placement of elements and write code for specific app features. Some required frontend skills for Mobile App Developers are HTML, CSS, TypeScript, the library jQuery, and cross-browser compatibility.
-
Good knowledge of Agile development – The Agile method helps Mobile App Developers to work well in a team environment and be adaptable.
-
Excellent expertise in UI design – UI determines how the mobile app functions.
-
Substantial knowledge of cybersecurity – Cybersecurity is another vital part of mobile app development regarding safely using the app and providing secure access to information.
-
Experience with cross-platform development – If the open position refers exclusively to cross-platform. Ideally, the Mobile App Developer needs to know how to develop across various platforms, not just one.
Arthur Pasqualon, a Mobile App Developer at Proxify, summarizes the must-have prerequisites for Mobile App Developers:
"The mobile app dev should master the knowledge of the environments and know a lot about Hybrid and Native development. Regarding the Hybrid (React Native and Flutter), they should have a good knowledge of JavaScript and TypeScript, and regarding Flutter, they should know Dart to a satisfactory level. For Native development, they should know Swift and Objective-C for iOS, then Kotlin and Java for Android."
Interview questions (and answers) for assessing Mobile App Developers
Below is a list of common questions you could use during the interview and their example answers.
1. Can you tell us about apps that you're developing/have developed?
Example answer: In this part, there is no single "template" for the answer, but remember that candidates should speak concisely when describing their favorite app creation.
They can show you their phone apps and even link you to their Play Store or App Store. But not just talking about it–they could also try to merge the usage of those apps with your business needs.
2. When and How do you begin designing an app?
Example answer: First, I must carefully review the assignment and its requirements. I focus on the target audience for the app, what they need, and what would simplify their daily lives and improve because of this app. Then with this clear idea, I start sketching some ideas for the UI.
Next, after the idea mapping for UI is the wireframing and then the app prototyping. I ensure every feature is placed correctly, making the app testing much easier before I move to development.
When my client approves the prototype, I use frameworks and technologies to develop and make the app functional on more devices. Lastly, there is the testing and debugging for a seamless and functional final result.
3. Could you compare and elaborate on manual and automated tests?
Example answer: Manual tests are a common practice when conducting many test rounds for an app. Let's say we have to test an app's new function. In this case, manual testing is the best choice.
In comparison, an automated test is a practice for conducting many regression tests (testing to ensure that any change did not alter or break the functionality) for the mobile app. These tests are time-saving and the best option for urgent situations.
4. What are hybrid apps?
Example answer: Hybrid apps are created with a blend of native code (Java or Objective-C) and web technologies (JavaScript, HTML, and CSS). When developers make hybrid apps, they make them web-publishable and on both types of app stores, too (iOS and Android).
5. What is ANR?
Example answer: ANR means "app not responding," which sometimes happens with Android apps. It is in the shape of a dialogue box, which will instantly appear after the app unsuccessfully tries to load for 10 seconds. It means the app is not responsive and crashes. This situation is unfavorable, but we can prevent it by reducing the number of activities the primary UI thread performs.
The cause for ANR is a long response time of an app that processes a broadcast message. In other words, the broadcast receiver is not finished with the onReceive() execution method within a substantial timeframe. This makes the broadcast receiver call goAsync() but doesn't successfully call finish() for the object PendingResult.
6. Can you elaborate more on the Android app components?
Example answer: First, it depends on which architectural pattern you are interested in. In an Android app, the components are the crucial building blocks. There are a total of four component types. Each of them is an entry point, and the system, or the user, relies on this entry point for entering the app:
-
Services – The service has a general purpose of continuous background running of the app. It is used for remote processes in work and long-running operations.
-
Activities – The activity is just one screen with its user interface, representing the entry point for the interaction with the user.
-
Content providers – The role of the content provider is to manage a complete app data set, which can be stored in the SQLite database, file system, the web, or another storage location with easy access.
-
Broadcast receivers – This component allows the system to deliver events straight to the app but outside the user flow. Broadcast receivers enable the app to respond to any broadcast announcements that are system-wide, timely, and correct.
Activities, fragments, background and foreground services, and broadcast receivers are just some common concepts that every native Android developer should be familiar with, and there are others similar.
7. Can you elaborate on common problems during mobile app testing?
Example answer: The most frequent issue is slow loading and overall slow performance affecting the app's practicality and running. In this case, we always have to pay attention to the time needed for the app to start; then, we focus on the loading time for different screens.
Anything over two seconds is a lot of time for a task in the app. We need to work with the mobile apps developer team and aim to improve the loading speed.
8. Could you define "usability testing"?
Example answer: In the final testing stages of an app, we conduct usability testing. This is a process where we gather a small group of end-users and tell them to test the app to give us their feedback.
With this, we can quickly pinpoint possible overlooked problems and ensure the app can easily access multiple devices. This process makes the app more usable, practical, flexible, and easily accessible.
9. Can you briefly explain what Sandboxing of apps is?
Example answer: Sandboxing is a cybersecurity practice where a particular piece of software is isolated, and it has access to just specific programs, resources, and files, all to avoid malware or errors that could affect the whole system. For example, we have the Privacy Sandbox initiative by Google for privacy-enhancing ad solutions and protected privacy of users and businesses. This initiative also proposes two crucial solutions: the privacy-preserving APIs and SDK Runtime.
10. Can you explain more about the data stored in iOS and Android and suitable solutions and databases for storing data?
Example answer: The term for native data storage in Android devices is SharedPreferences. It is used for storing data in small amounts, such as settings or user preferences, and this data is always kept in an XML file format.
For iOS devices, it is pretty similar, and it's called UserDefaults. Previously, these UserDefaults were named NSUserDefaults, and the format is always .plist
We can use SQLite with both. Additionally, with Android, we have the Room persistence library for accessing SQLite databases and less boilerplate code. With iOS, we have Core Data for object graph management.
11. What are emulators and simulators?
Example answer: The emulator represents a program not dependent on a line handset but efficiently tests mobile apps.
The simulator represents a tool used for mobile app testing but simulates an electronic network. This tool is commonly used for helping users with their home network (the latching) that doesn't depend on roaming services.
Both emulators and simulators are cost-effective, so we don't need to purchase those devices for app testing.
12. Could you describe debugging when the app is released and ready to use?
Example answer: When we need to get the information for the app crash and correct it, we can use Firebase Crashlytics, a third-party crash analytics software for both Android and iOS. It gives us information about the device's manufacturer, the user's language, the operating system's version, and more. Some tools similar to FC include Appsee, Instabug, Raygun, and Sentry (suitable for JavaScript-written apps like React Native).
13. Can you elaborate on the lifecycle Activity?
Example answer: Users navigate an app differently, through, out of, or back to it. When these things happen, the instances of the app Activity will also transition during their lifecycle in different states.
For navigation of the transitions across these stages of the activity lifecycle, the class Activity has a six-callbacks set:
- onCreate()
- onResume()
- onStart()
- onDestroy()
- onPause()
- onStop()
14. Can you elaborate on the Android build process?
Example answer: The build process encompasses three significant steps.
-
First, we must compile the (/res) resources folder; we use the aapt tool (android asset packaging tool). Everything gets compiled into just one class file named R.java, and this class has only constants in it.
-
Then, we compile the Java source code directly to .class files (by the language compiler javac). Next, we convert the class files to Dalvik bytecode with the dx tool. This tool is included in the SDK tools, and finally, the output is classes.dex
-
Lastly, we use the Android apkbuilder that collects every input to build the apk file (android packaging key).
15. Can you compare and elaborate on onCreateView(), onCreate() and onActivityCreated() in context of Fragment and their usages?
Example answer: We have to call these when in Fragment, but at different times. First, we call onCreate(), and we use this for any initializations that are not graphical. Second, we assign and declare the View variables we need in onCreateView(). Lastly, we use the onActivity for any last remaining initializations after everything else is done.
Recognizing and selecting the best Mobile App Developer
A great Mobile App Developer will put user experience first, and they will strive to make an app as creatively and uniquely as possible. Most importantly, they will also do an excellent job on the technical tests and provide clear and accurate code and answers.
Pasqualon here adds:
"They will have a proven and strong portfolio and always focus on the user experience and user issues, if any. The ideal candidate will like to upgrade their skills, i.e., they always continue learning new technologies and implementing upgrades. A close eye on details is another strong trait to look for. Additionally, they'll know very well how users interact with various interfaces, and they will be well-informed of all there is to know about the software, hardware, legal aspects, and limitations of Android and iOS environments. Last but not least, they can showcase an app they made that proved extremely useful for companies and individual users."
How should a successful app look in the end?
These are the traits to look for, whether in previously made apps by the Mobile App Developer or current ones (to show you if the developer is on the right track):
-
Simple to use – The app must have a good UI and smooth local navigation that will show through simplified browsing and searching.
-
Multi-applicable – Unless specified otherwise, ideally, the app should be functional on both iOS and Android systems.
-
Available offline – During internet connection obstacles, good apps still provide valuable functionalities to the user.
-
Well-performing – The great app has to come with a quick loading time of up to one second. This means that if the app is quickly performant like this, its updates will be regularly introduced too.
-
Customizable – It is always nice for users to decide and customize how their app would appear.
-
Integrating with social media – retention of users is easy when you integrate social media with the app. Users can keep on using the fun features of the app that are, at the same time, synched with media and various platforms. This includes sharing and resharing, adding things to lists, and connecting more social media profiles.
-
Access for analytics – The app admin has to receive information on the user behavior quickly, all in compliance with local and regional privacy laws.
Possible challenges during the hiring of a Mobile App Developer
These are the common challenges around hiring a Mobile App Developer:
-
Budget challenges – Ensure you have enough budget to see the process throughout. Remember that shortlisted candidates may ask for higher compensation than the sum you are prepared to set aside.
-
Lack of qualified candidates – If a skill is much needed and popular, those developers could be in high demand and have plenty of options. This is a common challenge if you start the whole recruitment process alone, without services that provide vetted developers for you.
-
Starting without a roadmap – Regardless of whether you do this alone or get assistance, the hiring process must begin with a well-planned roadmap. This includes the type of job ad you will create, where to look for the Mobile App Developers, what interview questions to use, and more.