Do you feel as if you and your app developer don’t speak the same language? You hear them talking something about API or backend of your application and you start wondering whether they come from the same planet Earth as you do?
Well, don’t worry – a lot of people feel so, too. As with any complex, technical discipline, IT has a lot of terms which are specific to IT professionals only and it is not a shame to don’t understand each word they say.
However, it do helps a lot if you and your interlocutor can understand each other well, at least when it comes to the basics of your app development project. That’s why we prepared a dictionary for you! Here you can find a set of most common questions clients ask us throughout the development proces.
1. What do “native” and “hybrid” mean in app development? How do they differ from each other?
There are two popular approaches to mobile application development, which determine which technologies and languages will be used as well as the functionalities and capabilities of the app.
Native mobile applications are developed specifically for a mobile operating system such as iOS, Android, Blackberry or Windows Phone. Each operating system has its specific languages and technologies which enable to obtain certain features and functionalities. That’s why coding in the operating system’s native languages ensures that all the app’s features work smoothly and are easily understandable for users.
Hybrid apps, on the other hand, combine features of Native and Web applications, meaning that the main part of the software is written in Web languages, such as HTML5 while some parts can also be written in Native languages. This means that Hybrid apps tend to be flexible and easy to update as they are not focused on a certain operating system but work through Web technologies.
2. What is the difference between frontend and backend?
Frontend and backend are the two areas of app development and they have to work together in a fully functioning mobile application.
The frontend part of the code is responsible for what users actually see on their screens – the functionalities combined with UX and graphics. It is written for a certain platform such as Android and iOS and the language used are specific to these platforms: Java for Android and Objective-C or Swift for iOS.
The backend is where you find the implementation of business logic and data handling as well as integration with third-party systems. It is important especially if your app includes a lot of data which has to be stored in databases hosted on a server. In order to create the backend, developers use languages such as .Net, Java, LAMP (Linux, Apache, MySQL, and PHP), Ruby, and Python.
3. What is API?
An application program interface (API) is a set of routines, protocols, and tools used in developing mobile applications. It is a set of clearly defined methods of communication between various software components of which the app made.
So basically, it is a system which takes a request from the frontend, sends it to the backend and then returns the response so that an app knows what to do.
4. What is agile project management? What is an iteration?
Agile is a method for managing IT development teams and projects which is based on a flexible, time-boxed approach. Instead of delivering the whole project at the end, in agile management the process is divided into a set of short, two-weekly cycles called iterations. After each iteration, the client is asked to share his feedback and changes are made accordingly which makes it possible to adjust the project gradually and save the time and resources.
Agile allows to quickly produce a basic version of working software built on successive iterations – a key advantage if time to market is a key concern for your app. It also offers frequent and early opportunities to see new deliverables, allowing to make quick decisions throughout the entire development process. What’s more, because clients are closely involved in the project, they gain a sense of ownership and as they usually know their target market better, the final product is much more user-focused.
5. Wireframes, mockups, user flow, and prototype – what do these terms mean?
Although sometimes used interchangeably, these terms mean very different things and are used in different parts of the project.
Wireframes are low-fidelity blueprints of a mobile application. They depict what goes where in design but only as a basic draft, without focusing on details, colors or shapes. All buttons, tabs, and placeholders are already included, making it easy to imagine the final skeleton of the application.
Mockups focus on the design layer. Their role is to show how the app’s visual elements will look before you arrive at the final version of the design. Therefore, mockups include such features as fonts, colors, or shapes which are not depicted on the wireframes. However, they lack in functionality.
User flow is a term connected with app architecture. It means the path that a user of an app has to take to complete a certain task. The user flow takes a user from their entry point, through a set of steps, towards their goal.
Once you have wireframes, mockups, and user flow defined, you are ready to create a prototype – something that looks and feels like a real app, but lacks the details of the final graphic design of a ready project and of course – lacks the code that can make it really work.
6. What is the difference between UX and UI?
User Interface (UI) Design differs greatly from User Experience (UX) Design.
The term User Experience is defined as a person’s perceptions and responses that result from the use or anticipated use of a product, system or service and in case of apps, includes such aspects as the overall skeleton of an app, how it works, and how it can be used by the end-users.
Once the app skeleton is ready and having set the information structure, the navigation, and the final flow, it’s time to create the visual concept of the app. UI Designer work is always based on wireframes created in the UX phase. At this stage, no significant changes to app’s operation are made. Instead, what matters now is how the app looks.
8. What is the difference between an online and an offline app? Can I choose one and then change my mind?
An offline application runs on a user machine and it is available at any time, without the need to connect with the back-end application. Such an app is downloaded from an app store onto user’s device and if an update is needed, it has to be downloaded from an app store as well. It is a good example if an app’s main functionalities are static, e.g. a calculator or a game like solitaire.
An online mobile app needs a WiFi or cellural connection to the back-end application. Such apps cannot operate without the internet connection as they need it to download the content and updates. A good example can be a social or messaging app.
There are also apps which don’t require an internet connection to show the basic functions but to update the content, you need to go online.
Developing for these two systems requires different technologies and approaches so it is best to make up your mind on which one to choose from the very beginning, preferably during the workshop stage.
9. What kind of tests do you perform to check the app for bugs?
At Ready4S, we take tests very seriously.
The testing process begins already during the coding process – when we use code review for the initial check out. After each iteration is ready, we also perform a series of tests using different techniques.
First, there are simple functional, black box tests that are performed after each project iteration. It means that a tester receives an application and manually checks whether all functionalities prepared for the iteration are fulfilled. These tests are the simplest and quickest way to find bugs. We try to cover all paths according to the specification and prototype.
We also perform regression tests, which means that after checking the desired iteration, a tester or a group of testers also check all previous functionalities so that we could be sure that recent changes haven’t affected earlier iterations.
For bigger projects, we sometimes perform automated tests using Espresso framework. This kind of tests take longer to prepare but can be easily reused in future.
When several testers check one application, we also write down test cases that match information from specification and prototype accepted by the client so that other person could easily test application.
10. How to publish my app in app stores? How much does it cost?
Publishing process depends on the app store where you want to publish it.
If your app is written for iOS platform, to publish it in the Apple App Store, you have to create Apple developer program account first. Then, create an iTunes Connect app record, configure your XCode project for distribution, and archive your app. Finally, run iTunes Connect validation tests, upload your app, submit Version for Review, and your app is ready to release. The price for adding your app to the Apple App Store is $99 a year.
If you are going to publish an Android app in Google Play store, you need to create your Google Play publisher account first. Once you’ve done it, click “add new application” button and upload APK. Finally, you have to prepare store listing, choose Pricing & Distribution methods, and you are all set to publish the app. With Android, there is only a one-time charge of $25 to publish your app.
Seems a little complicated? Don’t worry, once your app is developed, our team will be glad to publish it in app stores for you.
Do you want to learn more about mobile applications and the mobile world? Just subscribe to our weekly newsletter below and you will get fresh updates and tips directly on your mailbox.