• Trusted by:

Hire Freelance Mobile app Developers and Engineers

Jon Fabris, United States

Freelance Mobile app Developer at Toptal since July 2, 2014
Jon is a freelance front-end developer with extensive experience developing applications on desktop, web, and mobile platforms. His products include eLearning, web apps, games, and mobile (Android and iOS) applications, and his team experience includes architecture as well as leadership. Click to continue

Felipe Munoz Suban, Chile

Freelance Mobile app Developer at Toptal since November 6, 2014
Felipe is a mobile developer, passionate about everything related to software programming from back-end technologies to UX patterns. He has developed many native apps using a variety of frameworks such as geolocations, API communications, and camera. He's a great guy and a capable, enthusiastic developer, sure to be an asset to any project. Click to continue

Adel Tahir, Malaysia

Freelance Mobile app Developer at Toptal since March 24, 2014
Adel is a senior full-stack web developer with solid experience in Node.js, React.js, and AngularJS as well as PHP, Ruby-on-Rails, and Python/Django. He also has solid experience in iOS and Android mobile app development and he has worked in teams of all sizes. Click to continue

Denys Maruda, Montenegro

Freelance Mobile app Developer at Toptal since March 19, 2014
Denys is an entrepreneur at heart with extensive experience in different areas of software engineering. He easily connects end user expectations with business requirements. He is highly motivated, proactive, and self-organized, and excels at developing mobile applications, specifically for iOS. Click to continue

João Dias Barbosa, Portugal

Freelance Mobile app Developer at Toptal since February 4, 2014
João is a passionate iOS and Android developer with a strong attention to detail that has yielded great apps. He has delivered many projects for millions of users, for both startups and big companies, and he's worked extensively on back-end and API integrations. He has a very positive attitude and works well both alone and on teams. Click to continue

Hubert Orlik-Grzesik, Poland

Freelance Mobile app Developer at Toptal since January 21, 2014
Hubert is an incredibly fast learner--he was once able to pick up a musical instrument in the morning and play nice tunes by the afternoon. He has the same skill when it comes to working with new technologies and on new projects. He values high quality code and attention to detail, and he cares deeply about great UX. Click to continue

Nithin Reddy, India

Freelance Mobile app Developer at Toptal since August 14, 2014
Nithin has more than 4 years of experience in mobile application development. He is skilled at native mobile app programming for both the iOS and Android platforms. He has a wide range of experience with Push, APNS, Geo-fencing, Payment processing (including card readers), maps, mobile device management, QR code scanners, Paypal, Stripe, Parse, etc. He is a strong team player and individual contributor with great communication skills. Click to continue

Nikola Minoski, Macedonia

Freelance Mobile app Developer at Toptal since August 6, 2014
Nikola is a passionate freelance mobile app developer with 4+ years of experience in mobile apps and game development. He also has strong skills with web development and desktop apps. Click to continue

Ted Cohn, Puerto Rico

Freelance Mobile app Developer at Toptal since February 1, 2014
Ted has 25+ years as a senior architect, technologist, developer, entrepreneur, and CTO. He led Barnes & Noble's Nook team in Palo Alto, created Pleo the dinosaur, Foodiebot chatbot ordering system and worked for Silicon Valley giants like Apple, Excite, and NeXT. He can develop new concepts, join/lead teams, and bring order to chaos. He loves innovating and delivering incredible products. Superb communication and presentation skills. Click to continue

Matt Durgavich, United States

Freelance Mobile app Developer at Toptal since March 24, 2013
Matt is a seasoned programmer with technical breadth and depth. He has worked in a variety of industries, ranging from startups to large corporations on everything from embedded systems to large-scale web apps. Aside from his extensive technical skills, he is also a strong team member and leader. Click to continue
mobile app developers
Trustpilot
Toptal on TV
"Toptal is killing it, it kind of owns this market."
Andrew Ross Sorkin Reviews Toptal
Cnbc 02e66b
"Tech companies simply cannot find the quality employees they want to hire. The solution: Toptal."
Liz Claman´s Review of Toptal
Fox 7ef901
Toptal in the press
“Despite accelerating demand for coders, Toptal prides itself on almost Ivy League-level vetting.”
Selina Wang
“Toptal allows corporations to quickly assemble teams that have the right skills for specific projects.”
Steven Norton
A hiring guide
The Vital Guide to App Developer Interviewing

In a bipolar smartphone world where Android dominates devices and iOS dominates application revenue, it is impossible to ignore one platform and develop on another. Here is a guide to help you find those rare masters of both Android and iOS platforms.

Testimonials
“Toptal offers a no-compromise solution to businesses undergoing rapid development and scale. Every engineer we've contracted through Toptal has quickly integrated into our team and held their work to the highest standard of quality while maintaining blazing development speed.”
Greg Kimball
Co-Founder @ Nifti
“Toptal is amazing! Sourcing and interviewing candidates has always been incredibly cumbersome and difficult - and usually takes weeks or months to find the right people. With Toptal, we had 5 candidates in 2 days that were all perfect for the job. They made the scheduling of interviews easy and straightforward and we were working with a top-level bad-ass developer within 2 weeks. I love you, Toptal.”
Ian Fosbery
CTO @ NMRKT
“It has been wonderful to work with Fabian for the past two years. He is an expert in JavaScript development and has built our embeddable widget and video player. He is a quick study and is able to learn how to integrate new technologies, which is so critical for a startup. He even took the extra effort to teach others on the team. He is super responsive and often went above and beyond to help us meet deadlines (including working on weekends). Thank you Fabian. Thank you Toptal for making it so easy to find and work with amazing talent.”
Natasha Mohanty
CTO @ FEM Inc
“Ignacio is one of the most diligent software developers that we have ever worked with—we feel like he's part of the family. He has always been flexible enough to work on our team's schedule and never misses deadlines. Toptal gets you the talent you need, on your timeline, keeping the process very low friction.”
Austin Evarts
CEO @ GoChime
“We really enjoy working with Toptal. The experience has been very positive, and we'd recommend it to anyone seeking developers on-demand.”
Jeff Kerr
CEO @ CaseFleet
“Finding a good developer who specialised in the technologies we use seemed like an impossible task... until we used Toptal. We had several trial periods and have just accepted our first developer to join the team! The whole process went seamlessly and without any surprises or hidden costs. We are very happy and will continue to work together!”
Artem Tolmachev
CEO @ eKids.nl
“We've used Toptal developers multiple times for multiple projects, and they've always been world-class—regardless of whether they've been from South Africa, Brazil, or the United States.”
Alex Haro
CEO @ Life360
“We've been incredibly pleased with our experience working with Toptal thus far. Their team worked quickly and efficiently to isolate the needs of our project, and they paired us with an appropriate developer within a couple days who we quickly contracted after a great interview. The work performed on our project was top-notch, and we can’t wait to make use of Toptal’s resources again.”
Ryan Staake
Owner @ Pomp&Clout
“Sergio was an awesome developer to work with. Top notch, responsive, and got the work done efficiently.”
Dennis Baldwin
Chief Technologist and Co-Founder @ PriceBlink
“We needed some short-term work in Scala, and Toptal found us a great developer within 24 hours. It was done quickly for a specific need, and it's been great. It simply would not have been possible via any other platform.”
Franco Arda
Co-Founder @ WhatAdsWork.com
“I've been very happy with Juraj. He is efficient, writes great code, and is an extremely nice guy to work with. Most importantly, he is self-motivated. In just his initial pass at the code base, he has contributed several optimizations and stability improvements. Regarding Toptal as a service…well, you matched us up with Juraj without me having to sort through a list of candidates, so I’m impressed.”
Matt Cotton
Dev Team Lead @ eFolder
“Nuno is brilliant! He has been extremely helpful and really knows his stuff with regard to Django in particular.”
John Yetter
Software Engineer @ Survox, Inc.
“We were extremely impressed with both Toptal and our developer, Bojan. They were extremely professional and flexible with our schedule. On multiple occasions, we needed to alter our timeline and they never hesitated to accommodate us. Bojan was communicative and delivered what we asked for on time and exactly to spec. I know that should we need additional work, will surely be looking to hire Bojan and Toptal again. ”
Stephen Vasallo
Co-founder @ Bubble
“I struggled for weeks with a Youtube API-specific problem and couldn't find anyone to solve it. Toptal immediately identified the right consultant who took the time to investigate the issue and resolve it quickly. The process was seamless and I will continue to use Toptal with any other issues that arise.”
Rohit Gupta
CEO @ Bollyshake
“Toptal was the best thing to happen to my web app. Initially, I hired a team of freelancers from India through another freelancing website—which was a nightmare. In fact, it was so bad that I had to start again from scratch, which is when I found Toptal. The experiences were like night and day. It was so refreshing to get partnered up with a quality developer that I could trust due to Toptal's extensive screening process. I will only use Toptal from now on and highly recommend you do the same.”
Chris Holtzhauer
CEO @ HootRecruit
Hire a top mobile app developer now.
Toptal is a marketplace for top mobile app developers. Top companies and start-ups choose Toptal freelancers for their mission critical software projects.
Full
profile
Jon FabrisUnited States
Jon is a freelance front-end developer with extensive experience developing applications on desktop, web, and mobile platforms. His products include eLearning, web apps, games, and mobile (Android and iOS) applications, and his team experience includes architecture as well as leadership.
[click to continue…]
Mobile App DeveloperSwiftJavaScriptJavaiOS SDKXcodeAdobe PremiereApple XcodeAdobe Creative SuiteAdobe PhotoshopUser Interface DesignAgile Software DevelopmentiOS
Hire
Full
profile
Felipe Munoz SubanChile
Felipe is a mobile developer, passionate about everything related to software programming from back-end technologies to UX patterns. He has developed many native apps using a variety of frameworks such as geolocations, API communications, and camera. He's a great guy and a capable, enthusiastic developer, sure to be an asset to any project.
[click to continue…]
Mobile App DeveloperPythonCocoaXcodeMySQL
Hire
Full
profile
Adel TahirMalaysia
Adel is a senior full-stack web developer with solid experience in Node.js, React.js, and AngularJS as well as PHP, Ruby-on-Rails, and Python/Django. He also has solid experience in iOS and Android mobile app development and he has worked in teams of all sizes.
[click to continue…]
Mobile App DeveloperSwiftPHPSQLJavaScriptJavaObjective-CAngularJSCakePHPiOS SDKAndroid SDKReact.jsReact Native
Hire
Full
profile
Denys MarudaMontenegro
Denys is an entrepreneur at heart with extensive experience in different areas of software engineering. He easily connects end user expectations with business requirements. He is highly motivated, proactive, and self-organized, and excels at developing mobile applications, specifically for iOS.
[click to continue…]
Mobile App DeveloperJavaC/C++Objective-CGoogle MapsXcodeGoogle AnalyticsGitAgile Software DevelopmentiOSUI Kit
Hire
Full
profile
João Dias BarbosaPortugal
João is a passionate iOS and Android developer with a strong attention to detail that has yielded great apps. He has delivered many projects for millions of users, for both startups and big companies, and he's worked extensively on back-end and API integrations. He has a very positive attitude and works well both alone and on teams.
[click to continue…]
Mobile App DeveloperJavaObjective-CAndroid SDKiOS SDKTwitter APIMixpanel APIButterknifeFacebook APIAndroid StudioXcodeAgile Software DevelopmentAndroid
Hire
Full
profile
Hubert Orlik-GrzesikPoland
Hubert is an incredibly fast learner--he was once able to pick up a musical instrument in the morning and play nice tunes by the afternoon. He has the same skill when it comes to working with new technologies and on new projects. He values high quality code and attention to detail, and he cares deeply about great UX.
[click to continue…]
Mobile App DeveloperC++RubyCSS3JavaScriptCObjective-CHTML5SQLJavaMeteorJSNode.jsjQuery
Hire
Full
profile
Nithin ReddyIndia
Nithin has more than 4 years of experience in mobile application development. He is skilled at native mobile app programming for both the iOS and Android platforms. He has a wide range of experience with Push, APNS, Geo-fencing, Payment processing (including card readers), maps, mobile device management, QR code scanners, Paypal, Stripe, Parse, etc. He is a strong team player and individual contributor with great communication skills.
[click to continue…]
Mobile App DeveloperObjective-CJavaiOS SDKAndroid SDKPayPal APIParse Android SDKParse iOS SDKGoogle AnalyticsXcodeMaciOSAndroid
Hire
Full
profile
Nikola MinoskiMacedonia
Nikola is a passionate freelance mobile app developer with 4+ years of experience in mobile apps and game development. He also has strong skills with web development and desktop apps.
[click to continue…]
Mobile App DeveloperJavaScriptJavaAndroid SDKAndroid APISQLiteAndroid
Hire
Full
profile
Ted CohnPuerto Rico
Ted has 25+ years as a senior architect, technologist, developer, entrepreneur, and CTO. He led Barnes & Noble's Nook team in Palo Alto, created Pleo the dinosaur, Foodiebot chatbot ordering system and worked for Silicon Valley giants like Apple, Excite, and NeXT. He can develop new concepts, join/lead teams, and bring order to chaos. He loves innovating and delivering incredible products. Superb communication and presentation skills.
[click to continue…]
Mobile App DeveloperSQLJavaHTML5CObjective-CJavaScriptMicrosoft Bot FrameworkJava CollectionsSQLiteNode.jsjQueryRubyMine
Hire
Full
profile
Matt DurgavichUnited States
Matt is a seasoned programmer with technical breadth and depth. He has worked in a variety of industries, ranging from startups to large corporations on everything from embedded systems to large-scale web apps. Aside from his extensive technical skills, he is also a strong team member and leader.
[click to continue…]
Mobile App DeveloperC/C++Objective-CSwiftCocoaXcodeAJAXiOSWindowsUI Kit
Hire

The Vital Guide to App Developer Interviewing

In a bipolar smartphone world where Android dominates devices and iOS dominates application revenue, it is impossible to ignore one platform and develop on another. To build and release an application on both dominant platforms, you need special breed of developers. Rare developers that are familiar with both iOS optimized border shadowing and flattened Android UI hierarchies using merge layout tags.

Here is a guide to help you find those rare masters of both Android and iOS platforms.

We also suggest that you read our Android Hiring Guide and iOS Hiring Guide for more advanced and in-depth information that will help you find the right developers.

Preface

As smartphones gained popularity, many developers jumped on the trend and started creating iOS or Android applications.

Most of them had previous experience with web or desktop applications, and tried to copy old concepts onto new platforms, but they failed. Smartphone platforms differ from all other types of platforms in many aspects, most of them related to small screen size and how the user interacts with device.

After realizing that new platforms bring new concepts, good developers embraced them and started creating applications aligned with the platform they ran on.

Next, developers who created applications on one platform started working on the other one. Again, many didn’t realize how different Android and iOS are despite some similarities, and continued working with mindsets aligned to the platform they started with. Some recognized this difference and embraced another platform as completely new.

You want to find one of those rare gems - developers who natively understand both Android and iOS and can work on the same application created for both platforms, similar in functionality but differing in user experience and adapted to their platforms.

Differences

Although Android and iOS have the same main concepts, they also have many differences. Devices for both platforms are handheld and user input is touch based. But if we dig deeper, we will find more and more differences. They start with design of UI controls, continue with how they interact with the user, how new views are opened, or how users can navigate around the application and platform itself. Background differences are even bigger.

App developers versed in both platforms should know how each of them works, and on top of that understand the differences between them. Developer should know where to use platform specific concepts and also recognize similar concepts called with different names.

Questions and Answers

Q: Describe what classes are and how they used in Objective-C and Java. What about methods and functions? How are nil/null object pointers handled?

This is a simple question as every developer should know what classes are and how they are used. You can use this question to check how good a developer is at explaining concepts and how she/he can explain similarities and differences of two implementations of the same concept. Here is a shortened definition of class from the iOS Developer Library:

A class describes the behavior and properties common to any particular type of object. For any object, the class offers various ways to examine and convert the internal data that it represents. In the same way that multiple buildings constructed from the same blueprint are identical in structure, every instance of a class shares the same properties and behavior as all other instances of that class.

For a class to be useful, it needs a way to receive a message saying it should do something. The terms “method” and “function” refer to the same thing in Objective-C and Java. A method (function) is a section of code that can be called from elsewhere in our code, and the method (function) will perform some action and return some result that can be used by a caller. Method (functions) are used to organize class code into meaningful and understandable sections.

Variables that keep reference to one object, one instance of class, actually hold memory address where that object is located. Special address nil in Objective-C, null in Java signifies that there is no actual object. (This can mean that object was not yet created or that it has been removed from memory.) If you call method of such non-existing object in Objective-C nothing will happen, but if you do the same thing in Java, it will result with a runtime exception completely stopping your application. This is an interesting difference in otherwise very similar behavior of classes and objects in Objective-C and Java.

Q: What are the similarities and differences between protocols and interfaces? How and when are they used?

In Objective-C, a protocol is used to declare methods and properties that are independent of any specific class. On one side, one class can use protocol as definition of requirements that one of method parameters need to satisfy, and on another side, other class can choose to implement the same protocol. In this example, protocol is a list of requirements that method parameter needs to satisfy to be used as such.

Interface is protocol in the Java world.

Q: Describe the relationship between selector message and method in Objective-C. Is there a similar concept in Java?

In objective-C, Selector, message, and method are very connected concepts that build on top of another. A Selector is the name of a method. It does not imply class to which method could belong. A message is a selector and the arguments you are sending with it. A method is a combination of a selector and an implementation (actual code that can be executed).

In Java, there is a method reference that references defined method of defined classes and can be used for dynamic method invocation.

Q: What is category in Objective-C? When is it used?

Categories provide the ability to add functionality to an object without subclassing or changing the actual object. They are often used to add methods to existing classes created by other developers. The biggest problem with categories is the possibility that two categories define methods with the same name. In that case, it is not defined which method will be used.

Java does not have a similar concept.

This question was taken from Stackoverflow.

Q: What is runtime object type checking, and when is it useful?

During application run time, method or function can check type of passed parameter and decide how to treat it depending on its type. For example, a method expecting object of type Contact can inspect the received object to see whether it is PersonalContact or BusinessContact (in this example PersonalContact and BusinessContact are both subclasses of the Contact class).

Q: Explain differences in error handling between Android and iOS.

In Java (and Android), all problems that arise during the execution of a program are communicated through the concept of throwing and catching exceptions. Throwing an exception stops execution of the current function and continues in catch and finally blocks of try-catch-finally construct somewhere up in the function calling hierarchy.

Although the same try-catch-finally construct exists in Objective-C, it is not so widely used. Instead, Apple’s Cocoa handles problems by using objects of type NSError. The two most common approaches are:

  • Pass a blank NSError object into a method and when the method completes, check to see if that object is still blank or contains an error.
  • Pass an NSError object to some failure delegate method or callback method.

NSError objects contain information about the occurred error that error handling code can use to decide further actions.

Q: What is the source of exc_bad_access error in iOS?

exc_bad_access errors are a common source of frustration for iOS developers due to the lack of useful debugging information that they provide. They often occur when trying to access an object that was never initialized or has already been released. These errors can also result from passing a parameter to a message that the message is not intended to receive (such as passing a NSInteger when an NSString is expected).

To find the source of the problem, a developer can enable NSZombies in Xcode and keep objects that would normally be released alive as “zombies”. After enabling NSZombies, you can then follow what is happening in your code and receive a message when the application tries to access an object that has been released, thereby identifying the problem in your code.

Q: What can cause ANR error on Android?

We can find a perfect explanation on the Android Developer website.

The system displays an ANR if an application cannot respond to user input. For example, if an application blocks some I/O operation (frequently a network access) on the UI thread so the system can’t process incoming user input events. Or perhaps the app spends too much time building an elaborate in-memory structure, or computing the next move in a game on the UI thread. It’s always important to make sure these computations are efficient, but even the most efficient code still takes time to run.

Q: What are the advantages of Swift over Objective-C?

This is an open ended question, so you can use it to test how a developer handles conflicting situations by taking the opposite viewpoint of their claims. Almost any difference between Objective-C and Swift can be seen from both sides, either as a step in good direction or step in bad direction. You can find more information about Swift on our blog From Objective-C to Learning Swift

Q: Compare UITableView/UITableViewDelegate on iOS with ListViews/ListAdapter on Android.

On iOS, UITableView (table view) is a part of UIKit, used for displaying and editing hierarchical lists of information. A table view displays a list of items in a single column allowing users to scroll through the table. UITableViewDelegate is a protocol that delegates of UITableView must adopt. Methods of protocol allow delegate to manage data and presentation of data in the table view. We could say that object implementing UITableViewDelegate protocol adapts data so it can be used inside table view.

On Android, ListView is used for displaying data in a scrollable table, and ListAdapter is an interface that needs to be implemented by class adapting data for ListView that displays it.

In short, UITableView/UITableViewDelegate and ListViews/ListAdapter are the same concept named differently.

Q: How are animations created on Android and iOS?

Android documentation gives a nice description of animation options on Android.

Android provides two mechanisms that you can use to create simple animations: tweened animation, in which you tell Android to perform a series of simple transformations (position, size, rotation, and so on) to the content of a View; and frame-by-frame animation, which loads a series of Drawable resources one after the other. Both animation types can be used in any View object to provide simple rotating timers, activity icons, and other useful UI elements.

Tweened animation is the preferred option, as it allows more granular programmatic control over what happens and is easier to adjust for specific requirements.

On iOS, the most preferred animation option is creating animations using UIView class methods (animateWithDuration:animations:, animateWithDuration:animations:completion:, and animateWithDuration:delay:options:animations:completion:) All three methods are block based, and as they are UIView class methods, animations are not tied to any particular view so one animation can animate multiple properties of multiple views.

Q: How do Memory Management and Garbage Collection Function?

Objective-C keeps track of what objects are in use by keeping a retain count for each object. When an object is referenced, retain count is increased. When dereferenced, retain count is decreased. When count goes to zero, the object is removed from memory. Retain count can be managed manually (Manual Retain-Release - MRR) or automatically (Automatic Reference Count - ARC).

With MRR, developers had to worry about retaining and releasing an object. In contrast, ARC automatically takes care of updating retain count. As result of that, most iOS applications and developers are using ARC.

On Android, memory management is completely different. Dalvik virtual machine performs routine garbage collection and removes memory from all objects not referenced by other objects. This usually works as it should, but common sources of problems are Bitmaps. You can find more about Bitmap memory management here.

Conclusion

We just scratched the tip of the iceberg of knowledge needed to be a top Android and iOS app developer, although we highlighted some important core concepts and differences.

Taking into account the complexity of each of platform, it becomes clear that it can take years for developers to master all necessary knowledge. We hope that questions and answers presented in this post will help you find the right app developer for your project.

Hire mobile app developers now
Alvaro 1506e7

My team is going to personally help you find the best candidate to join your team.

Alvaro Oliveira
VP of Talent Operations