iOS app development: Top 6 questions answered
As part of the mobile ecosystem, iOS mobile system has a number of features, both from a technical point of view and in terms of organizing the deployment process.
If you are at the business planning stage of an iOS application, you face a number of questions related to technology selection nuances, creating the necessary permissions and publishing the application in the Apple Store. General information available on the Internet does not always answer all the questions related to native iOS development.
We have collected the most popular questions from customers, project managers and business analysts which refer to the process of creating iOS applications. The answers are given by Anton Tsykanov — iOS-developer with 8 years of experience in developing mobile applications.
SDH creates native and cross-platform mobile applications for iOS from scratch and enhances existing products through software integrations, custom modules and user features to enhance functionality, aesthetics and overall user experience.
Instead of Introduction
In IT language, the publication of a program is called a release. To make the text readable for you without Google, we have compiled a thematic glossary; view it before reading the article:
- Build or collection is a program file of (.IPA) format , which the developer downloads into the App Store Connect.
- Program signature is a technology that confirms that the program was created by a specific developer.
- Certificate is a file with the "permission" for something from Apple; it certifies that the person at the computer on which the certificate is installed is a member of the Apple Developer Program and has authority to sign collections with this certificate.
- TestFlight is an App Store Connect service, where applications are tested.
- Review is an App check, done by App Store reviewers.
- Reject is return of the build for revision, or rejection of assembly.
- Fitching is getting an app to a page build.
1. Which language is currently better for the iOS app and why?
When you are trying to develop the perfect app for iOS, one of the first things you need to determine is the language you'll need for the project. When it comes to developing native iOS mobile apps, you have two options: either to use the good old Objective-C, or to employ the next-generation Swift.
Brief description of Objective-C: "Only the oldies go to war"
- Created by Brad Cox in 1983
- Based on C / C ++ and Smalltalk technologies
- Strict typing
- More memory allocated
- Strict ARC
- Square brackets
Brief description of Swift: "Youngsters are willing to get power"
- Created by Chris Lattner in 2014
- Based on Objective-C, Rust, Haskell, Ruby, Python, C #
- Updated almost every year
- "Soft" typing & ARC
SWIFT has proven to be faster, easier and smarter than Objective-C. The number of applications written in SWIFT is growing.
Despite this trend, there have already been many programs written on Objective-C that require support. In some cases, Objective-C is more appropriate, especially for creating highly loaded applications. The transition from one language to another is natural, but this transformation is always smooth.
Obviously, in the future Apple will abandon Objective-C. So far, a lot of effort has been put into its promotion and development. Note that SWIFT is an open source language that always contributes to the growth of the community. In 2021, the SWIFT community already had 2.5 million developers and Objective-C had only 1.6 million.
It is still not economically feasible to rewrite the program from Objective-C to SWIFT, but new projects should be done in SWIFT. For example, Apple itself implements new iOS features
2. What architecture design is suitable for iOS?
The types of architectures used to build iOS mobile applications may vary, but they can all be covered by the four basic application structures or their mixes that are widely used in the IT industry. These are MVC, MVP, MVVM and Viper. But which one is perfect for your needs?
IOS application architectures:
- MVC (Model, View, Controller)
- MVP (Model, View, Presenter)
- MVVM (Model, View, View Model)
- VIPER (View, Interactor, Presenter, Entity, Router)
Each architecture has its own relevance and scope. For example, the MVC, MVP, and MVVM design models have tight connection issues, making the software update and testing process difficult.
VIPER has high degree of flexibility and testing capabilities compared to other models. VIPER allows you to distribute templates and helps test all available features, making it an ideal choice for development iOS.
3. What are the difficulties in Apple registering, issuing permits and certificates?
The process of preparing an account for the release of the application in Apple has a number of pitfalls. What should the project manager do before publishing the application:
- Create an account in the App Store for the customer, if the customer does not have it, or publish the program from the account of the developer;
- Prepare marketing materials (an icon, screenshots, a text, a video for viewing the program);
- Add a digital signature certificate to the build;
- Set up a fee for using the program;
- Send the build to the App Store.
Apple has a complex procedure of registration, obtaining permits and certificates.
The developer’s sequence of steps is as follows:
Access to AppleDeveloper -> Team / Personal Provisioning Profile -> AppleID -> Development Certificate -> Device
You must first create a developer account to publish in the AppStore. In this account, you enter your company name and present your brand on the App Store platfrom. This is where your program will be published.
An Apple Developer account can be created for both a legal entity and an individual entrepreneur (the waiting period is 1 day for a developer / 19 days for a company). An account created for a legal entity (company) has no restrictions on the number of developers who have access to it. An account created for a sole proprietor gives access to only one developer. The value of an Apple Developer account is $ 99 / year (as of June 2022).
A digital signature is required for the App Store to identify the developer. In the future, only this developer will be able to update and change the program.
This paragraph of the instruction refers to the technical side of the development and is performed by the developer. The task of the project manager is to make sure that the program has a signature. If the build does not have the correct signature, you can get a rejection from the App Store.
When you're developing a program, you'll probably want to test it before sending it to Apple for approval. Provisioning Profile acts as a link between the device and the developer account. During development process, you choose which devices you can run your application on and which application services it will access. Provisioning Profile is downloaded from your developer account and embedded in the application package, and the entire package is signed with a code. The Provisioning Profile must be installed on each device where you would like to run the program code.
You also need to create an Apple Developer certificate. You can create one using Xcode or the Apple Developer portal. If the information in the Provisioning Profile does not meet certain criteria, your application will not start.
The following conditions must be met for a successful launch:
- AppID verified
- the certificate verified
- the team matches
- the opportunities coincide with the rights.
Each of the stages you go through (development, testing or publication), including all important components of the Apple ecosystem such as Push Notifications, requires the availability of up-to-date certifications. In other words, your program won't even be able to "sneeze" without permission from Apple Developer Center.
- Apple Push Service
- WatchKit Service Certificate
- ApplePay Payment
- ApplePay Merchant
- PassType ID Certificate
- Website Push ID Certificate, etc.
For example, a common problem of applications is that push notifications won’t work. In this case the developer has to go through the whole chain: check the certificates, the servers, access to the servers (sandbox and production), etc. As a rule, the problem is just in the certificates.
The specifics of the operation of the Apple software certification system is a separate vast topic. An experienced iOS developer from SDH will help put the Apple Developer Center in order.
4. What are the main rules for publishing an application?
Without extra sentiments, publishing an app in the App Store is the most exciting process in the developer's life. This is the main step for a mobile product. All the expectations and excitement about the release of the first version are concentrated here. To avoid redevelopment and frustration during the pre-project stage, get acknowledged with the main rules of the Apple Store. Pay special attention to point №4 devoted to design. When publishing the program, you must take into account all the requirements of the App Store Review Guidelines, there are many of them, and they are very diverse.
In addition to checking compliance with all these rules, Apple review and manual testing follow the publication.
Beta testing is the process by which a pre-release or beta version is distributed to a small, limited number of testers. ReadyFlight is a ready-made solution with which developers can organize testing of beta versions of programs for iOS and macOS.
The rules for publishing a build are quite tough.
Make sure you:
- tested yourapplication for failures and errors;
- make sure that all information about the program and metadata is complete and accurate;
- update your contact information in case App Review needs to contact you;
- provide an active demo account and login information, as well as any other equipment or resources you may need to test your program;
- enable back-end services so that they are active and accessible during the review;
- include detailed explanations of non-obvious features and in-app purchases, etc.
According to our experience, the application can be rejected even for trifles. For example, we were rejected when a test account called "test" was stored in the product code, in another case there was a slight mismatch between the interface and the loaded design layout.
5. What are the most common reasons for failure to publish iOS applications?
Below there is a list of common reasons why you may be denied an app on the AppStore:
- WebView. The application must have no more than 30% on the webview and strictly coded internal links.
- Icons and images.
- Size. Make sure that the .ipa file does not exceed 50 MB in size at the time of publication.
- UI / UX that does not correspond to the Human Interface Guideline. A difficult-to-use application that has illogical behavior and location of elements is likely to be rejected.
- Similar applications. Submitting multiple apps that are essentially the same delays the App Store verification process and increases the risk that your apps will not pass verification.
- x32 | 64. This failure can only be when developing an application for older versions of iOS, where the developer did not provide optimization for the latest architectures of the phone's processor.
- Audio \ Video coder
6. What types of mobile applications do we develop?
Native applications for iOS
Our developers create first-class native applications for iOS, which allows you to provide a full range of iOS development services from the stage of product strategy development and prototyping to deployment and maintenance in the App Store.
Applications for businesses
Enterprise programs for SMBs / enterprises can be integrated into an organization's IT infrastructure to increase team productivity, flexibility and organization. The main demand of the customers of corporate mobile applications is automation. The need to create such a product may arise due to changes in the company's structure, business development strategy, corporate culture, sales system, team management and processes.
Consumer applications are often logical, with high-performance, and beautifully designed, which allows you to increase consumer engagement and get high ratings in the App Store.
We develop first-class iOS apps compatible with a variety of IoT devices with built-in sensors, including Apple watches and smart home appliances (HomeKit).
We will help you quickly attract the target audience and get the first profit, outperform competitors with the help of modern technologies and present your product to potential investors.