Along with the speed of technology development, mobile phones have become more than a device to make a call or send SMS. Mobile phone features have been rapidly developed, and the device itself is gradually replacing camera, music player, navigation tool, virtual or augmented reality devices… Therefore, mobile app development has become an essential trend of software creation. Let’s explore mobile app development.

Popular Mobile Platforms

Apple iOS

IOS is backed by Apple and works on a specific Apple device including iPhone, iPod, and iPad. Apple provides iOS SDK with many tools and libraries to support developers, especially XCode, all you need to focus on is creating amazing apps… and a MacBook or a system that can run macOS.

Google Android

Android is the other dominant player; it launched a bit later but has gained a reasonably massive share of the mobile market.

Native Development and Cross-platform Technology

Native Development

To develop an application for a certain platform, it’s best to use the SDK and programming languages supported by that platform. For example, iOS applications that developed with the iOS SDK directly use Objective-C or Swift, and Android applications that developed with the Android SDK directly use Java or Kotlin. This is the best way to provide optimal performance and possible to access all device’s hardware APIs. But if an application needs to support both platforms, different platforms must maintain different codebases, double affords, and time. Time to market will be longer, hard to support dynamic content and business requirement changes. Of course, it will impact business scenarios like e-commerce or banking products…

Cross-platform Technology

To solve 2 main issues of native development about development cost, time and dynamic content, cross-platform technologies occur. Major categories:

HTML5 Hybrid Development

The main principle of this framework is to implement an application by HTML5 and load by WebView. The content can be changed anytime, HTML5 code only needs to be developed once after that it can work on all platforms support WebView. Using JsBridge to communicate with native API calls, Mark Zuckerberg made a statement in 2012, “The biggest mistake we’ve made as a company is betting on HTML5 over native”.

Core Native

This does not get transpile to platform-specific language, Objective-C or Java, instead there is a core framework in platform language that uses JavaScriptCore to connect to native API. The most popular framework, React Native is a cross-platform mobile application development framework that was open-sourced by Facebook in 2015 April. React Native uses JavaScript language, bring the concept of JSX, HTML, and CSS to develop mobile applications. This method is suitable for any developer who’s familiar with Web development and develops with a gradual learning curve. React Native is a derivative of React on the native mobile development. If Virtual DOM in React is mapped to browser DOM tree, Virtual DOM in React Native is mapped to the native controls by JavaScriptCore. Compare to HTML5 hybrid applications, React Native has much better performance as it’s a native control rendering. At the same time, React Native uses web development concept, which allows us to write a single codebase to support both web and mobile with the launch of React Native Web.

Own Rendering Engine

The famous framework has this approach is Flutter, which is a mobile application development framework released by Google. It allows developers to build mobile apps with Dart language, also it runs well on both iOS and Android. About the Flutter rendering engine, it uses Skia (library from. Google) as its 2D rendering engine which currently Chrome browser and Android use Skia as its drawing engine.

This approach is very interesting, we will explore in detail in another post.

Top Essential Categories

The emergence of mobile devices brings us a lot of helpful applications, not just telecommunication.

Healthcare

A portable device that users can bring anytime nowadays can be a tool for us to track the exercise record, sleep quality record, hearth rate, step tracking… are some essential examples.

Identification

With the development of biometrics (Face, Voice, Fingerprint), a mobile phone now can be a reliable device to identify users. Mobile phones and biometrics are a winning combination in the mass market, allowing the technology to become much more widely accepted.

Augmented Reality

AR is a technology that composites virtual objects into the real world. Its wide application uses in gaming, entertainment, advertising and, Medical.

Mobile commerce

Mobile commerce is more than just a simple evolution of eCommerce, it enables people to buy and sell goods or services from everywhere has an internet connection, simply using a mobile phone.

You see, there are a lot of ideas we can develop on mobile.

Hieu Tran

Software Development

Software development is a magical art of creating a program which can perform a required task following a set of processes. Software development includes numerous steps such as thinking of an idea, designing a rough idea, implementation of the blueprint, testing, bug fixing and many more.

The process of Software Development includes writing and maintaining the code in particular language, in other words, we can say that it includes everything which is involved in the creation of the desired software product via the desired process.

Why Do We Need Software?

Every Business firm or organization needs a software program to perform various tasks which can ease out the work of a person and reduce the requirement of manpower. Software Developers use a process known as the Software Development Life Cycle (SDLC) to Design, Develop and Review High-Quality Software. The purpose of SDLC is to produce something which fulfills the expectations of the customer and completes in estimated time and cost.

Let’s Learn About SDLC In Detail

Software Development Life Cycle is basically a detailed plan which describes how to create, maintain, alter and improve a specific software product (program).

Diagram Depicting The Software Development Cycle

SDLC consists of the following stages:

  1. Planning:

Business requirements are gathered in this phase. This phase is the main focus of the project managers and stakeholders. Meetings with managers, stakeholders, and users are held in order to determine the requirements like; Who is going to use the system? How will they use the system?  What data should be input into the system?  What data should be output by the system?  These are general questions that get answered during requirements gathering phase.

  1. Analysis:

In this phase project managers, stakeholders and user (Customer) discuss the requirements of the system, and also discuss the things like “Who is going to use the system?”, “How he will use the system?”, “What type of data is needed?” Etc. After gathering all the information about requirements for the system the process of development moves forward in the direction of designing.

  1. Design:

On receiving system design documents, the work is divided into modules/units and actual coding is started. Since in this phase the code is produced so it is the main focus for the developer. This is the longest phase of the software development lifecycle.

  1. Implementation:

On receiving system design documents, the work is further classified into parts (Modules) and actual development of products starts. This Is the longest phase of the SDLC. If the design phase (previous phase) is implemented properly, code generation in this phase is achieved without any problem. Once our software is developed properly it goes for a proper review to check whether it is functioning properly or not.

  1. Testing:

After the code is developed, it is tested against the requirements to make sure that the product is actually solving the needs addressed and gathered during the requirements phase. During this phase, all types of functional testing like unit testing, integration testing, system testing, acceptance testing are done as well as non-functional testing are also done.

  1. Deployment and maintenance:

After successful testing, the customer receives the product for their use.

As soon as the product is given to the customers they will first do the beta testing. If any changes are required or if any bugs are caught, then they will report it to the engineering team. Once those changes are made or the bugs are fixed then the final deployment will happen.

Once when the customers start using the developed system then the actual problems come up and needs solving from time to time. This process where the care is taken for the developed product is known as maintenance.

I hope this post’s helped you understand better on the process of software development. Feel free to send us any question in the comment below or via email. See you in the next post!

Phuc Nguyen

 

 

Reference Source

https://www.quora.com/What-is-software-development-lifecycle

http://tryqa.com/what-are-the-software-development-life-cycle-sdlc-phases/

https://www.tutorialspoint.com/sdlc/sdlc_overview.htm