Pages

Sunday, February 22, 2015

Summary!

Summary
In all the previous posts, we have seen the various requirements, development stages, final outcomes of mobile application development. Following are the major points that needs to be taken care of for the better application reach towards the customer.

  • The needs and requirements to be defined.
  • Decision to be made on product level whether native or responsive.
  • Customer friendly design like tapping and clicking.
  • Always single columns are better.
  • Better to use vertical, collapsing technique to provide and present more information.
  • Superfluous things to be removed or avoided.
  • App usage speed is more important. Lagging should be nil.
  • Prime motive is the task. Customers must proceed and do what they need to do.
  • Frequent testing of app to be done to make sure its working well.
Let it be android, iOS, Blackberry or Windows, the concept and idea of developing an application should be similar i.e, the basic idea, content, execution customer support remains the same. The design and the quality of the application may be different from each other platforms since all these are depending on the different developers who finalize the app market.
The reach of an mobile application purely depends on the marketing being done to show the customer how is it attractive and how well it would be useful for them to use. Let it be useful tools or any entertainment time killing application, it must attract the user to download it. The overall success of an application is its simplicity and ease of access.

Thank you.

References
1. Wikipedia.
2. "Mobile developers guide to parallel universe" by Wireless Industry Partnership , 2012
3. www.androidcentral.com
4. "Professional Mobile application development" by Jeff McWherter & Scott Gowell
5. https://developer.apple.com/

Platform: iOS

The whole new generation is craze about the Iphone released by Apple which directly shows the importance of application provision to the customers. The importance of developing a new application depends on how big the customers are!

The native language of iOS is the basic Objective C programming and code writing the same language. Code writing is the backbone of developing any iOS app. Thus knowledge of Objective C programming is must in view of developing iOS application. In case of iOS apps, its is not only meant for Iphone but also other apple products like Ipads, Ipod touch series, etc. So screen optimization and adaptation plays a bigger consideration here in iOS app development rather than other aspects.

As far as the iOS app development, there are three levels of developing programs available. First of all we do need to have an Apple account to proceed. the three levels are as follows:

iOS Developer Program - It allows the developer to distribute the apps in the App store as an individual.
iOS Developer Enterprise Program - It allows the developers to develop proprietary apps for internal distribution within a specified company, organization, government entity, or educational institution.
iOS Developer University Program - It allows higher education institutions to create teams of up to 200 developers that can develop iOS applications. This program level is free, and allows for programs to be tested on physical devices, but does not allow App Store deployment.

The iOS provisional portal:

Whatever the levels, we need to access  the iOS Provisional portal.  Here the developer is allowed to create the necessary files for the app development and deployment.
After this, we need to create development and distribution certificate as shown below.
Figure 25: iOS Provisional portal certificates
The Apple ID creation has to be done as follows:


Figure 26: iOS Provisional port Apple IDs
Similarly, the devices which we going to use and the files which we going to use are to be selected and registered onto the provisional portal certification dialog box.
After that Xcode to be downloaded from the developer page of Apple website as shown below.
Figure 27: Developer webpage
Now X code to be installed and all the necessarycomponents of iPhone SDKs to be installed.
xCode: xCode is Apple’s Integrated Development Environment (IDE) for creating Objective-C applications. It enables us to manage &  debug your Objective C projects.
Dashcode: Dashcode is an IDE that enables to develop web-based iPhone/iPad applications and Dashboard widgets.
iPhone Simulator: This tool provides a method to simulate an iPhone or iPad device on Mac for use with testing of the developed iOS apps.
Interface Builder: The Interface Builder is a visual editor that is used for designing the user interface for the iOS application.
Instruments: Instruments is a suite of tools that helps you analyze your iOS application and monitor for performance bottlenecks as well as memory leaks in real time while attached to an iOS device or iOS Simulator.

With all these, the iOS app to be started developing by creating the required views, codes for achieving it, resources, project depth, etc.
The the storyboard to be created with the coding done for the navigation designed.
Figure 28: Sample storyboard
Now, the debugging of the app developed has to be done in the debug area with the local area, breakpoints and at last the output analysis to be made.


The main core is the Objective C Basics which is different from normal C programming. Then the control structures are to be finalized. And now the device family to be achieved for various devices onto which the app to be used. Then similar to the Android development, the views, controls, gestures are to be designed bt the code writing and is achieved.


Apple has brought us to the world of modernity in mobile computing the constantly keeps on innovating things and apps for the betterment of ourselves and also the industry. Apple continues to amaze its customers by their quality apps....

Platform: Android (Continued)

Development
Here we will see the steps in the screenshot way rather than using words which could be more self explanatory.
Figure 19: Creating a new project

Figure 20: Naming the project

Figure 21: Configuring the project.
Figure 22: Selecting SDK version of the App


After this, the user interface to be designed in Java code programming as per the following:
  • Buttons
  • Textview
  • Edittext
  • CheckBox
  • Radio Button
  • Listview
Figure 23: Major UI element
Layouts and views
Frame Layout
Linear Layout
Table Layout
Relative Layout.

Figure 24: Frame Layout / Linear Layout / Table Layout
Then an Android Virtual device to be created followed by debugging.Debugging in Eclipse is a simple way and easy. Instead of running our application, we select "Debug As" and the screen is off and running. Setting breakpoints in our code by selecting them by the gutter next to the line numbers, and as our code progresses it will break at all your steps.

After all these steps it should be connected to the Google Playstore and UI navigation and notifications should be taken care of. In this post, we have seen the Android as your framework.

Saturday, February 21, 2015

Platform: Android

Android!!!!!! A Google OS which created a revolution in the smartphones consists of over a million apps in different categories. Android Inc was initially started in 2003 but acquired by Google later on in 2005. Android's major release was in 2008 which was supported by T mobile with HTC dream (G1).The Android OS was built on a modified Linux kernel and applications are written in Java. By using Java as the development framework for the applications, Android enables you to develop your application on all major platforms.

Since the Android runs on so many devices, it have got as many app development competitors within themselves.

Lets now look into the requirements of developing an app in Android.

Downloading and Installing JDK
The first step is to download and made sure that JDK is installed. JDK stand for Java Development Kit. We need this to do any java development as well as Android development in the machine. 
Figure 14: JDK Download page
Downloading and installing Eclipse
After we installed JDK, we need to have a suitable developing environment. The open source IDE Eclipse is recommended by Android directly.
Figure 15: Eclipse Download page
Downloading and installing Android SDK
After the installation of Eclipse, Android SDK (Software development kit). It includes all the necessary tools to build any android application.


Figure 16: Android SDK download page
Downloading and setting up of Eclipse ADT Plug-in
After the Android SDK installation, we need to install Eclipse ADT Plug In.
Figure 17: ADT Plug IN installation
Installing additional SDK components
This is the last step in preparing the environment for app development. This is to download additonal android OS packages.
Figure 18: Android SDK Manager
Following are the steps for loading Android SDK Manager in Eclipse.
  • Eclipse to be opened.
  • Then selecting Window ➪ Android SDK and AVD Manager.
  • Available Packages in the left panel to be selected. It shows all the components that are available for download from the SDK.
  • The component that we would like to install to be selected and to be installed.
The development portion we  will see in brief in the next post.

Continues.

Mobile User Interface Design

In this post, we are going to see about how the mobile user interface customization plays a vital role in the mobile application development. We are going to see the below mentioned topics.
  • Using the screen real estate efficiently
  • How the user perceives design elements
  • Social aspect of mobile interfaces
  • Accessibility
  • Design patterns
  • Designing for the platforms.
Effective use of Screen real estate
The first step to use the smaller interfaces of mobile devices is to know the context of use. Who the users are, what do they need, why, how, when and where will they access and use information?

Effectively the screen real estate is used by embracing minimalism, maintaining a clear visual hierarchy, and staying focused.


Understanding the mobile application users
While waiting in line at the bank or a restaurant, people pull out their mobile devices to 
entertain themselves and consume another dose of content. The Gestalt principles have had a considerable influence on design, describing how the human mind perceives and organizes visual data. The Gestalt principles refer to theories of visual perception developed by German psychologists in the 1920s. According to these principles, every cognitive stimulus is perceived by users in its simplest form. Key principles include proximity, closure, continuity, figure and ground, and similarity.

- Proximity
Figure 9: Proximity
Users tend to group objects together. Elements placed near each other are perceived in groups. people will see one group of three gears, and one group of two gears. Many smaller parts can form a unified whole. Icons that accomplish similar tasks may be categorically organized with proximity. Place descriptive text next to graphics so that the user can understand the relationship between these graphical and textual objects.

- Closure
Figure 10: Closure
If enough of a shape is available, the missing pieces are completed by the human mind. In perceiving the unenclosed spaces, users complete a pattern by filling in missing information. Figure 10 shows the concept of closure. people recognize a triangle even though the figure is not complete. Harness the closure concept to create icons with a strong primary silhouette, without overloading users. This is how the user correlate the concept.

Continuity
Figure 11: Continuity
The user’s eye will follow a continuously-perceived object. When continuity occurs, users are compelled to follow one object to another because their focus will travel in the direction they are already looking. When people see Figure 11, they perceive the horizontal stroke as distinct from the curled stroke, even though these separate elements overlap. Smooth visual transitions can lead users through a mobile application.

Figure and Ground
Figure 12: Figure & Ground
A figure, such as a letter on a page, is surrounded by white space, or the ground. In Figure 12, the figure is the gear icon, and the ground is the surrounding space. Complex designs can play with the line between “figure” and “ground,” but mobile interfaces speed user frustration with unclear distinctions. Primary controls and main application content should maintain a distinct separation between figure and ground.

Similarity
Figure 13: SImilarity
Similar elements are grouped in a semi-automated manner, according to the strong visual perception of color, form, size, and other attributes as seen in figure 13. In identifying similarity, dissimilar objects become emphasized. Strict visual grids confuse users by linking unrelated items within the view port. The layout should encourage the proper grouping of objects and ideas.

After these, we directly go to the accessibility requirements of the mobile user interface.
An application should be easier for users to use with poor or diminished vision, limited dexterity, or any cognitive impairment. Considering the accessibility as a way to reach
more users, standard defining of five checkpoints for mobile accessibility:

1. Overall Behavior: Independent of specific device features, the guidelines for a general
mobile experience.
2. Navigation and Links: The ease of user interaction with hyperlinks on the mobile device
interfaces.
3. Page Layout and Content: How content is designed on each page, and how chunks of content are laid out for accessible consumption.
4. Page Definition: Defining content areas for mobile device interpretation.
5. User Input: Considerations of available mobile device input methods.

Also, hearing, vision, speech, dexterity, cognition, error protection, correction, navigation, controls, etc to be considered for the development of user interface.

In the following posts, let us see in detail about various platforms for which the mobile applications are to be developed.

Mobile App vs Mobile Web browsers


Internet usage in mobile devices become predominant in the recent times. Without a mobile website, companies fail to retain their customers whereas the competitors would have that.
Figure 1: Graphical representation of Mobile internet users' increase
The easiness of the mobile browsing appalls the customers like anything. following are the screen shots of desktop and mobile versions of a website
Figure 2: Desktop version of Windsorstar.com
                                     
Figure 3: Mobile version of Windsorstar.com
Mobile user Behavior
In order to create a better user friendly app, the app creator should spend some time in analyzing the users behavior. The following are the three main factors, the mobile users look for.

  • Repetition
  • Boredom
  • Urgency
  • Attraction.                                 
A mobile application can be an opportunity to improve interaction wit the customers, to create brand awareness and revenue too.
Figure 4: Mobile App usage vs Mobile web usage
The following scenarios play a vital role in what type of app we need to proceed with.
If you require graphics and processing power
  • Require the use of the device’s camera?
  • Need to use the device’s microphone?
  • Require access to the device’s address book?
  • Require access to the device’s media library?
  • Would be using the market for payment?
  • Require use of push notifications?
  • Need to run as a background service?
  • Want to design a game?
Figure 5: Average number of apps installed per platform

The above pie chart clearly shows the usage of mobile apps in every mobile devices and its importance.
The flurry analytic show the worldwide usage tracking or monitoring of the apps developed.
Figure 6 : Flurry analytics


Benefits of Mobile applications:
Offline usage content
Rich user interface
Ease of discovery
Push notifications
Increased customer feedback

Apart from all these, the app store provides a greater support in advertising and marketing our application to make it reachable to all the customers. Find the screen shots of app stores of iOS and Android below.
Figure 7: iOS App store
Figure 8: Android Play store
Summary of this post
When creating a mobile strategy, it’s important that we must spend some time to find out which model fits best for their business domain. Starting down the wrong path can be costly, and be detrimental. We have seen the importance and necessity of a mobile web presence, and that app development should not be taken lightly nor rushed into because it is trendy. Creating a mobile web app can be the better solution if it fits our business domain. The ease of updates and use of existing resources are very compelling reasons to build a mobile web app. When we are creating a truly great app that provides user value, there are no shortcuts to build once and run everywhere. At this point, we should have a really good idea of what a mobile application is, and what platforms we will look into developing for. 

Continue....

Friday, February 20, 2015

Preliminary Considerations


Continued from the previous post...

Cost of Development

There are many costs associated with mobile application development. Each developer would need hardware and software to develop the applications on. The team will need devices to test the software on. And if we want to deploy your application to any public market, then our company would need accounts on the various markets.



Hardware

To develop good mobile apps, We would need an Intel-based Mac because, simply we won’t be able to physically build the iOS implementation of your application without one. The nice thing about the Intel versions of Mac is that you can run Windows on them either virtually.
In addition to the Mac, we might also need multiple monitors. When debugging any application, it is invaluable to step through your source while interacting with the running application. When developing, we have the emulator or simulator running in one monitor, Dev Tool (IDE) running on another and a web browser on another with the documentation for the platform for which we are developing. Having access to all of this information at once prevents context switching for a developer and helps maintain focus. If we are seriously considering mobile development, we need to know that the emulator and simulators are great.

Software
When developing mobile applications there are few overlaps when it comes to software. To develop for iOS we need a Mac, to develop for BlackBerry you need Windows, for Java-based frameworks we need to use Eclipse. Building HTML for PhoneGap can be done in your text editor of choice.

 TARGETED FRAMEWORK
 SOFTWARE REQUIRED
 Windows 7
 Windows Phone SDK
 Visual Studio Express
 Expression Blend for Windows Phone
 (Windows only)
 iOS
 Windows Phone SDK
 Visual Studio Express
 Expression Blend for Windows Phone
 (Windows only)
 Android
 Eclipse, Android SDK
 Blackberry
 Eclipse, BlackBerry Plugin, BlackBerry Simulator (only works on  Windows)
 Titanium
 Titanium Studio, Titanium Mobile SDK
 + Android software + iOS software
 PhoneGap
 PhoneGap Plugin + iOS software (Mac only) + Android software +
 Windows Phone 7 software (Windows only)
 Any Framework Text Editors
 TextMate (Mac)
 Notepad++ (Windows)
Table 1. Software needed for development

Licenses & Developer Accounts
To proceed as a developer, we need to create and possess accounts in each platforms as well. For that we need to pay some kind of annual fees.

Documentations & APIs
The respective technologies’ online documentation and APIs should be maintained. This will be the location for the latest information in the respective technology. Resources for these code elements can be found at the respective websites. Sample websites are as follows:
- iOS Documentation: http://developer.apple.com/devcenter/ios/index.action
- BlackBerry Documentation: http://docs.blackberry.com/en/developers/?userType=21
- Android SDK Documentation:  http://developer.android.com/guide/index.html

Summary
The total cost attribute to create, maintain, and distribute mobile applications for all the platforms would be around a few thousand dollars just for the minimum infrastructure. Given the opportunity to expand this more I would upgrade the laptop to a MacBook Pro, with plenty of RAM, and upgrade the hard disk drive (HDD) to a solid-state drive (SSD). By making these upgrades you will incur a higher initial cost.