Showing posts with label architecture. Show all posts
Showing posts with label architecture. Show all posts

Thursday 9 May 2013

Types of Mobile Application



Mobile Application 'Types' is quite confusing topic. Here is the description of Application 'Types'

1. Browser Access: The applications which we are accessing through native browser. Ex : m.yahoo.com, www.google.com, m.redbus.in
2. Hybrid Apps: We are installing the application in our device and for the functioning of that particular application internet is required. Ex : Social Networking Apps(Facebook, Twitter), Instant Messengers(Skype), E-Commerce(Flipkart), Internet Speed Testing(Speedtest)
3. Hybrid Apps: We are installing the application in our device and if required we are connecting it to internet also. Ex : Few games in which we can play alone and we go online too for playing with different players(multi player). And any medical apps where u want to keep a track record of your health and later want to share with your friends or doctor via internet.
4. Native Apps : The applications which we are installing in our device. Ex : Reminders, Few Games etc.

It can be further understand by the communication medium of the apps:

Native Apps- Which can be installed in the devices and the app does not need any data transfer to the server. With out network these apps work in the device. The data about the app will be stored in the device itself. Example Gaming applications. Here the device memory and configuration is very important as the app completely dependent on this.

Client Server apps- They can be called Semi native apps. Here the app can be installed in the device. But the with out a network it cannot be launched. Because It gets the data from the server. With out the data the app will not proceed further. Example Commercial apps like Banking app. Here you basically can see the form UI but the all the data comes from the server. So the device memory is partially dependent just to install the app as the data comes from the server for every service call.

Mobile Web applications.- They can be called as Mobile browser apps as these are not installed in the device. these can be accessed using the mobile browser by hitting the Url of the web. Here the device memory size is not all important as neither of the from or the app data is stored in the device. It is Completely dependent on the quality of the browser. Every thing comes from the server and rendered in the browser when you hit the url.

Comparison between Native Apps, Hybrid Apps and Mobile Apps:

1.Skills/tools needed for cross-platform apps:
Native: Objective-C, Java, C, C++, C#, VB.net
Hybrid:HTML, CSS, Javascript, Mobile development framework (like PhoneGap)
Mobile web:HTML, CSS, Javascript

2.Distribution:
Native:App Store/Market
Hybrid:App Store/Market
Mobile web:Internet

3.Development Speed:
Native:Slow
Hybrid:Moderate
Mobile web:Fast

4.Number of applications needed to reach major smartphone platforms
Native: 4
Hybrid: 1
Mobile web: 1

5.Ongoing application maintenance
Native: Difficult
Hybrid: Moderate
Mobile web: Low

6.Device access
Native: Full access(Camera, microphone, GPS, gyroscope, accelerometer, file upload, etc
Hybrid: Full access(Camera, microphone, GPS, gyroscope, accelerometer, file upload, etc
Mobile web: Partial access(GPS, gyroscope, accelerometer, file upload

7. Advantages
Native: Lets you create apps with rich user interfaces and/or heavy graphics
Hybrid: Combines the development speed of mobile web apps with the device access and app store distribution of native apps
Mobile web: Offers fast development, simple maintenance, and full application portability. One mobile web app works on any platform.

8. Disadvantages
Native: Development Time, Development Cost, Ongoing Maintenance, No portability (apps cannot be used on other platforms)
Hybrid: handle heavy graphics, Requires familiarity with a mobile framework
Mobile web: handle heavy graphics, Can't access camera or microphone

Tuesday 23 April 2013

Android Architecture



Linux Kernel
Android OS is built on top of the Linux 2.6 Kernel
–Linux Core functionality
•Memory management
•Process management
•Networking
•Security settings
–Hardware drivers

Android’s native libraries
–Libc: c standard lib.
–SSL: Secure Socket Layer
–SGL: 2D image engine
–OpenGL|ES: 3D image engine
–Media Framework: media codecs
–SQLite: Database engine
–WebKit: Kernel of web browser
–FreeType: Bitmap and Vector
–SufraceManager: Compose window manager with off-screen buffering.

Android Runtime
Core Libraries
Provides the functionality of the JAVA Programming Language
Dalvik VM
A type of Java Virtual Machine
Register based (not stack machine like JVM)
Optimization for low memory requirements
Executes .dex (Dalvik-Executable) files instead of .class
DX tool converts classes to .dex format

Application Framework
•The blocks that our applications directly interact with.
•Important blocks:
–Activity Manager: Manages the activity life cycle of applications
–Content Providers: Manage the data sharing between applications
–Telephony Manager: Manages all voice calls. We use telephony manager if we want to access voice calls in our application.
–Location Manager: Location management, using GPS or cell tower
–Resource Manager: Manage the various types of resources we use in our Application

Applications
•This is where our applications are placed.
•Some pre-installed applications:
–SMS client app
–Dialer
–Web browser
–Contact manager
•As developers, we are able to write an app which replaces any existing system app.