Skip to content

Mobile Application Development

Özgür Deniz Demir edited this page Mar 7, 2024 · 4 revisions

Mobile Application Development

Mobile application development is the process of developing applications for mobile devices which are mostly tablets and smart phones. As many people now own smart phones, the target demographic for mobile apps are huge. The hardest part of mobile app development is taking consideration of the hardware constraints. There is a huge variety in hardware factors such as CPU speed and architecture, available RAM, storage capacity and screen sizes. There are two main operating systems for mobile devices, IOS for devices that Apple Inc. produce and Android for others such as Samsung, Google, Huawei.

Mobile apps are usually distributed using an official online market place (App Store - IOS, Play Store - Android). However, it is possible to install apps to Android using APK packages that can be shared using any possible way.

There are some important considerations when developing a mobile app:

  • Performance: The ability to perform a task without lags is very important for users. Even if there is no possible way to improve the performance of an app, there are ways of creating the appearance of speed. These can be including progress bars, or using skeleton screens that show the layout of the app with the content greyed out.
  • Clutter Free Screens: Keeping interactions quick and simple, only offering the user a few options at a time is important. The user should not be overwhelmed by multiple features and tasks at the same time. Breaking long forms into multiple pages, or showing tasks after the previous ones are completed is a good way of ensuring that.
  • Usability: Most smart phone users navigate their device using only one hand. This means that placing interactive UI elements to there the thumb can reach is important. In addition to that, the font sizes should be big enough so that the user can read the text without having to zoom in. The recommended font size is 11 points. Also, the text and background should have a high contrast ratio so that the text is discernible.
  • Notifications: Many smart phone users don't like when apps use unnecessary and frequent notifications. Which notification to send at which moment should be considered carefully. Otherwise, the users may disable notifications or even uninstall the app completely.

Mobile apps can be developed in different fashions. These are native, cross-platform, and hybrid apps.

  • Native mobile applications are built using platform-specific programming languages and tools, such as Swift or Objective-C for iOS and Java or Kotlin for Android. These apps are designed specifically for a particular operating system and offer the best performance, functionality, and user experience, but require separate development efforts for each platform.
  • Cross-platform applications are developed using a single codebase that can be deployed across multiple platforms. Developers can write code once and then use tools like React Native, Xamarin, or Flutter to build apps for both iOS and Android. While cross-platform apps can save time and money by reducing the need for platform-specific development, they may not offer the same level of performance or functionality as native apps.
  • Hybrid applications are a combination of native and web applications, built using web technologies like HTML, CSS, and JavaScript. They are developed using tools like Apache Cordova or PhoneGap, which wrap the web app in a native container, allowing it to be deployed as a native app. Hybrid apps can offer a balance between the development time and cost savings of a cross-platform approach with the functionality of native apps. However, they may also suffer from performance issues or limitations in certain areas.

There are many tools used to develop mobile applications. Some of the popular ones are as follows.

  • React Native: An open Java-script framework, that makes it possible to create multi-platform user interface components. Views are inherent constituents that interact with JavaScript-based logic via a bridge. The code runs on a JavaScript thread.
  • Flutter: Despite being a relatively new framework, it has gained widespread acceptance among developers, primarily due to its rapid development pace and the capability to incorporate a diverse range of widgets, some of which implement Google's Material Design principles.
  • Apache Cordova: The apps created using Apache Cordova execute within the native application wrapper, specifically in the WebView.
  • Ionic: Ionic is a well-known framework that leverages HTML, CSS, and JavaScript to generate hybrid mobile applications.
  • Xamarin: Xamarin is a Microsoft framework that employs the .NET framework and C# programming language for mobile app development. It enables the creation of apps and access to native APIs for iOS, Android, and Windows platforms.
  • Unity: While Unity can be categorized as a hybrid application framework, its primary purpose is the creation of graphically intricate forms of entertainment, like games and VR/AR experiences. C# is the programming language used in Unity.

🏠 Home

🚀 Important Project Files

🗃️ All Project Files
🧑🏻‍💻 About Us
📝 352 Meeting Notes
📜 Research & Resources
🗂️ Templates
Clone this wiki locally