What are iOS and iPadOS?
They are the variants of Apple's mobile operating system running on iPhones and iPads respectively. Prior to iOS 13, Apple didn't use a separate name to refer to the variant of iOS running on iPads, it too was simply known as iOS. The development community generally uses the term 'iOS development', to refer to iPadOS development too, we do the same.
How does the consultancy process work for iOS app development?
To start with we work together to understand your requirements, it's not at all unusual for clients to just have an idea for their app at this stage, equally they may have detailed specifications, or already have an existing app that needs updating.
Once your requirements are clear, if necessary, we work with some great designers who can create fantastic UI & UX designs for your app, although if you have these skills in-house then we will be happy to work with your designers too.
Depending on the complexity of your app, and how likely your requirements are to change there are different ways we can proceed with either a fixed scope & fixed price, or an agile approach to building your app. These are explained in more detail, along with the rest of the process on our home page.
Quality assurance testing happens throughout the development process, both through the development of automated tests and through manual testing of the app on physical devices, this is still important even though the number of device types to cover is significantly less than on Android. Prior to a full app release it is usual to set aside some time for quality assurance testing and resolution of issues, including end to end testing, user acceptance testing, security testing & device testing.
Once the release is ready we can handle the release to the Apple Store for you, or guide your staff through the process.
You own the source code to the development work you've paid for, and while we will of course be there to support you for future updates when you need us, you are completely free to take it to another development partner or build your own team.
The process of developing an app update is really a smaller scale version of the process explained above, with documenting of requirements, design, followed by development either on a fixed scope or agile basis, quality assurance and release.
To get started, tell us your app idea and let's take it from there.
What is a native iOS or iPadOS app?
The term native app can have several different meanings for iOS apps, although the situation is less confusing than it is on Android. It can refer to any of the following :
- The least strict definition is simply an app that is packaged to be installed so it can be distributed through Apple Store or using an Enterprise Certificate. This definition is often used in the web development community to distinguish installed apps from web apps that run within a browser, where a web development team may talk packaging their web application 'into a native app' using PhoneGap or Cordova, in this case the user interface will not use native UI components, it's just that the app will be installed locally on the device rather than being delivered to the browser through HTTP.
- An app that delivers its user interface using standard (or 'native') iOS/iPadOS UI components (the same ones as used in UIKit & SwiftUI), regardless of the programming language, use of higher level frameworks or other abstractions involved in delivering this. This is sometimes just referred to as an 'app with native UI', it is in this sense that the 'native' in 'React Native' is meant.
- An app that is built entirely or almost entirely using Apple's standard development tools, without any higher level framework involved in its development. This is the most common definition and the one we use unless it has been explicitly made clear that a different definition is intended. A significant advantage of apps developed in this way is that they are able to embrace the latest iOS functionality without waiting for a framework to be updated to support it, so when Apple release a new version of iOS or iPadOS with some cool new functionality, this kind of app is best placed to be updated quickly to make use of it.
What is the difference between a native iOS app and a cross platform app?
Cross platform apps are any applications that use a single codebase to deliver builds to more than one platform (i.e. Android, iOS & Windows), this can speed development by not needing to write the code multiple times in different languages for different platforms, and also reduce update / maintenance costs as only a single codebase needs to be maintained.
Cross platform apps will typically fall into one of the first two definitions (see above) of 'native iOS app' i.e. they will at least be apps that install locally on the device, and in some cases offer a native user interface. While it is possible to have a cross platform app that meets the last definition above (for instance by using Swift code for other platforms too), those using the most popular frameworks such as Flutter, Xamarin or React Native would not.
What technologies do you recommend for a native or cross platform iOS or iPadOS app?
Swift is now the dominant option for developing new native iOS or iPadOS apps, it's a more modern language than Objective C and simply faster to develop in. The main reason to work with Objective C nowadays would be to update older apps that were originally written in it, or to base a new app closely on the code of an older app. See our Swift and Objective C pages for more details on these. For cross platform apps, we recommend both Xamarin and Flutter depending on your requirements, these are explained in more detail, along with other popular options on our multi platform apps page.
How much does it cost to develop an iOS/iPadOS app?
The costs can vary quite dramatically.
A simple app for which an existing template can be used can start at under £1000 (under $1300 or under 1200 euro), however it's important to understand that this would mean just customising a template with new images, text, links etc. When apps are advertised on places like Fiver or Upwork etc for a few hundred dollars, that's what you would be getting at best, even if the team is based in a low income country, skilled software engineers won't be cheap and you will not be getting a custom developed app from developers who can deliver it. Alternatively you could end up getting an amateur developer who wants to try their hand at making an app, who is unlikely to deliver you a well tested, stable, finished app.
At the other end of the scale, we have heard of a large UK bank having 27 developers spread across multiple sub-teams working on a single platform for it's consumer mobile app, full time for a period of years, it's safe to assume that developer salaries alone would push the costs into millions of pounds per year.
Realistically, a custom developed app with it's own unique design, interacting with cloud services but without any unusual requirements (like meeting the needs of a major international bank!) is likely to come in somewhere between £45,000 ($57,000 or 53,000 euro) and £95,000 ($120,000 or 112,000 euro) for a Minimum Viable Product. This can be reduced significantly by using a template for some or all of the user interface, thus having a less unique but ready made design, or if the requirements are relatively simple.
Is there a difference in cost between a native iOS app and a multiplatform iOS app?
In terms of the cost of developing an app for iOS & iPadOS, starting from scratch, the cost difference is not significant. The real difference in cost comes when an app is needed for more than one platform. The cost of developing an app for both iOS and Android compared to just one platform is almost double for a native app, whereas for a standard multi platform app developed in Flutter the incremental cost of adding a second platform is only the cost of further device testing, with minimal development involved. A middle ground is where a native user interface and user experience is desired for each platform, but a multiplatform framework is used to share logic code between the platforms, the result is the incremental cost is significantly less than developing natively for a second platform, but a significant amount of development is still needed. Should this be the case, then it will depend on a number of factors if it's worthwhile using a multiplatform framework, such as how UI heavy the app is, if any platform specific integrations are required and how important it is to you to be able to quickly embrace new functionality in Apple iOS / iPadOS releases in your future app updates.
What skills are involved in native iOS / iPadOS app development?
The following skills are widely used in native iOS app development, our team have strong skills in all of them.
- XCode & the iOS SDK
- Cocoapods, Carthage & Swift Package Manager
- Apple Maps
- Tests with XCTest and XCUITest
- Unit tests with Mockito and Roboelectric
- Apple Push Notification service, PushKit & Firebase integration
- HTTP clients & sockets
- Core Graphics and Metal, porting of legacy OpenGL-ES code
- Development of back-ends with APIs to support mobile apps
- Objective C for legacy codebases
What are tvOS and watchOS?
In addition to the variants of Apple's mobile operating system running on iPhones and iPads, there is another variant called tvOS that runs on Apple TV devices, and a related OS that runs on Apple Watch devices called watchOS. iPod Touch devices run the same variant of iOS as iPhones. While it's not at all unusual to hear of tvOS and watchOS development under the general banner of 'iOS development' too, the very different screen sizes and user controls mean some degree of different design is inevitable, even though the development tools and skills required are the same.
How experienced are your team in iOS development?
Our team has an excellent track record and commercial iOS development experience going all the way back to the first iPhone all the way up to the latest versions of Swift. You can be assured we will develop and test your app to the highest standard.