Knowing the Parts of an App to Get a Coding Job

By Nikhil Abraham

A large part of the coding profession is directly related to mobile apps. Whether you’re building a mobile web app or a native app, the component parts of an app run on both the client and the server. The client is your personal mobile device that runs a local version of the app. The server stores the master copy of the app code and related databases.

Client components or processes affect the look, feel, and functionality on the mobile device. The following are typical components and processes that affect the client:

  • User interaction and user experience (UI/UX) design: The small screen and virtual keyboard require a good amount of thought around how the app will receive user input and what to display. UI/UX design is the process of designing how the app will look, feel, and operate. Minor changes and design choices can have a huge effect on the ultimate success of the app.

    For example, when the Tinder dating app launched, it differed from other dating apps because users browsed through short picture profiles of people by using a simple left‐right swipe gesture instead of viewing lengthy detailed textual profiles. This change helped Tinder capture 90 percent of the online dating market in less than one year.

  • Wireframes: After you determine the main user interactions and displays, you use wireframes to display each screen and exactly how the users will interact with the app. Initially, these wireframes can be rough sketches. Then, usually before writing any code, high‐fidelity versions with images are created for developers to use.

  • Caching: Because mobile devices typically have limited bandwidth and speed, you can improve performance if you locally cache, or save, certain data onto the phone. For example, if you were creating a restaurant reservation app, you might store on the phone the restaurants where the user makes the most reservations instead of requesting these frequently visited restaurants from the server each time the app is launched.

  • Synchronization: Users often expect that a mobile app, unlike websites built for desktops, will work even when no Internet connection is present. This expectation creates an issue because changes made to the app when offline must be uploaded to the server, and any conflicts must be reconciled.

    For example, suppose you lose your Internet connection while you are accepting a meeting invite using the calendar app on your phone. The app needs to have code that decides how often and when to upload your accepted meeting invite to the server.

Server components or processes occur on the company’s server, in the background or in real‐time, and support the app’s functionality. The following are typical components that run on the server and processes that affect the code or components running on the server:

  • Logic: Code must be written to decide what information to permanently save for later retrieval and what to display to the user and when.

  • Storage: Databases must be created to store user‐generated data and anything else your app will display to users.

  • Notifications: These pop‐ups appear even when the app is closed, keeping users engaged by reminding them to use the app. Notification events can be trigged by time, user activity (for example, you just made a payment), or an external event (such as someone just shared a photo and tagged you in it).

  • User accounts: Creating and deleting user accounts, authenticating users, and allowing access to some or all app features are necessary for any app that stores sensitive information.

  • Referrals and sharing: Integration with email providers and social networks are another way apps gain new users. Each social network, such as Facebook or Twitter, has its own steps to authenticate and share user content.

  • Versions: Unlike software you install on a desktop, mobile software is typically updated more frequently with new features and security fixes. Some users will not upgrade to the latest version of your app, so you need to make sure that any new versions of your app do not conflict with older versions.