Understanding Mobile Development (copy)

Mobile Development EcoSystem (copy)

What is mobile app

  • Application developed specifically for use on small, wireless computing devices, such as smartphones and tablets
  • Designed with consideration for the demands and constraints of the devices
  • Take advantage of any specialized capabilities they have , such as Camera , GPS Location, Fingerprint Scanner.

Why is everybody talking mobile

Fastest Growing Sector

Over 1 billion smartphones and 179 billion mobile applications downloaded per year!

Mobile development is certainly one of the innovative and actively growing sector.

Engaging the Users

Giants like Walmart, Bank of America and Amazon are using mobile applications for branding, improving customer engagement, direct marketing etc.

Growing Businesses

As more and more companies take enterprise solutions to smartphones, tablets and wearable(s).

This trend is accelerating now even in small and large scale businesses to build enterprise mobility solutions for organizing their business operations. 

Mobile and Technology

Mobile application development is driven by advancements in technology which requires businesses to have a vision for next few years.


On the left are some of the trends which will determine the future of mobile application development.

Which trend according to you could change the future of mobile development and why ?

You are free to refer to the previous topic or you can refer to any other technology that you believe could change the future of mobile development.

Mobile First Shift

Elements of mobile app

Operating System

What is a Operating System

An Operating System (OS) is an interface between a computer user and computer hardware. It acts like a middle-man - understands the user's requests/operations/clicks/inputs and submits them to the CPU ( the Central Processing Unit), then provides the result to the user, usually on a screen.

An operating system also performs quite a few other tasks like file management(up-keep of files), memory management(managing the RAM, Hard Disk, SD Cards and other types of memories attached to the system), process management (managing the running software/applications/services etc) and controlling peripheral devices such as disk drives and printers.

Mobile Operating System

A mobile operating system, also called a mobile OS,  is an operating system that is specifically designed to run on mobile devices such as mobile phones, smartphones, PDAs, tablet computers and other handheld devices.

Just like any normal operating system mobile operating system (OS) is software that allows smartphones, tablet PCs and other devices to run applications and programs.

A mobile OS typically starts up when a device powers on, presenting a screen with icons or tiles that present information and provide application access. Mobile operating systems also manage cellular and wireless network connectivity, as well as phone access.


Android OS

The Android mobile operating system is Google's open and free software stack that includes an operating system, middleware and also key applications for use on mobile devices, including smartphones. 

Since the platform is not closed like iOS, there are too many great Android apps built by developers.

Just after stepping into the smartphone and tablets market Android gained immense popularity due to its beautiful appearance and efficient working. Many new features were introduced which played a significant role in Android’s success. Google Play is an official app market that contains millions of different apps for Android devices. 

Updates for the open source Android mobile operating system have been developed under "dessert-inspired" version names (Cupcake, Donut, Eclair, Gingerbread, Honeycomb, Ice Cream Sandwich) with each new version arriving in alphabetical order with new enhancements and improvements.

Some of the best features of Android include the ability to customise multiple homescreens with useful widgets and apps that give you quicker, easier access to the content and functions you most care about.

It also has an excellent capacity for multitasking - with the ability to close programs by simply swiping them away.

Last but not least, the Android Market, which is the Android equivalent of the Apple App Store is home to millions of apps, many of which are completely free.

iOS

Apple's iPhone OS was originally developed for use on its iPhone devices.

 Now, the mobile operating system is referred to as iOS and is supported on a number of Apple devices including the iPhone, iPad, iPad 2 and iPod Touch.

 The iOS mobile operating system is available only on Apple's own manufactured devices as the company does not license the OS for third-party hardware. Apple iOS is derived from Apple's Mac OS X operating system.

Unlike Android, Apple has more concentrated on the performance along with appearance. This is the reason that the basic appearance of iOS is almost the same as it was in 2007. Overall it is very user-friendly and is one of the mobile best operating systems in the world.

Blackberry OS

Blackberry OS is the property of RIM (Research In Motion) and was first released in 1999. RIM has developed this operating system for its Blackberry line of smartphones. Blackberry is much different from other operating systems. The interface style, as well as the Smartphone design, is also different having a trackball for moving on the menu and a qwerty keyboard.

Like Apple, Blackberry OS is a close source OS and is not available for any other manufacturer. It is a very reliable OS and is immune to almost all the viruses.

Windows OS

Windows Mobile is Microsoft's mobile operating system used in smartphones and mobile devices – with or without touchscreens. The Mobile OS is based on the Windows CE 5.2 kernel. In 2010 Microsoft announced a new smartphone platform called Windows Phone 7.

Microsoft released a hugely revamped version of its Windows platform for mobiles in late 2010, after its software fell behind iOS and Android.

Redesigned and rebuilt from the ground up with a greater emphasis on the user experience.

Windows Phone comes with a mobile-optimized version of the Internet Explorer for accessing the web, and Exchange, which supports secure corporate e-mail accounts with push support.

Window Phone is recognizable from its tile-based interface - dubbed Metro - which features removable and interchangeable squares sections on the home screen, each with its own purpose and function.

Symbian OS

Symbian OS is officially the property of Nokia. It means that any other company will have to take permission from Nokia before using this operating system. Nokia has remained a giant in the low-end mobile market.

By upgrading Symbian mobile OS, Nokia had made it capable to run smartphones efficiently.(Symbian ANNA and BELLE)

Unfortunately, Symbian OS graph is going downwards nowadays due to the immense popularity of Android and iOS.


Bada OS

Like others, Samsung also owns an operating system that is known as BADA. It is designed for mid-range and high-end smartphones. Bada is a quiet user-friendly and efficient operating system, much like Android, but unfortunately Samsung did not use Bada on a large scale for unknown reasons.

There are only three phones that are operating on Bada. These three smartphones are Samsung Wave, Samsung Wave 2 and Samsung Wave 3. 

Which of the following mobile operating systems are secure ?

  • Android
  • iOS
  • Blackberry OS
  • Windows OS
  • Ubuntu OS

Can you have a non-apple device run on iOS ?

  • Yes
  • No
  • Maybe

Devices

Android Devices

Samsung, HTC, Motorola, Lenovo, Acer, ASUS, LG, Huawei, Sony and many other top manufacturers are using Android in their devices. Currently, Android is one of the top operating systems and is considered serious threat for iPhone.



iOS Devices

Apple has still not allowed any other manufacturer to lay hands on its operating system.

So far iOS has been used in all iPhones, iPod & iPad.

Windows Devices

All of us will be familiar with Windows OS because it is used in computers all over the world.

Windows OS has also been used in mobile phones.

Nokia Lumia series is completely windows based.

Symbian Devices

After Java Symbian was the most used in the mobile phones till a couple of years ago.

Still Symbian is widely used in low-end phones 

All time best Symbian phones were Nokia N95,       E-71, Nokia E-90. Now Sybmian is a popular choice among Nokia dual sim mobile phones.

Smart Glasses

Google Glass offers an augmented reality experience by using visual, audio and location-based inputs to provide relevant information.

For example, upon entering an airport, a user could automatically receive flight status information. Users can also control the device manually through voice commands and a touchpad located on its frame.

The Google Glass operating system is based on a version of Android, and it can run apps called Glassware that are optimized for the device. The glasses have built-in Wi-Fi and Bluetooth connectivity and a camera for taking photographs and videos.

Smart TVs

A 'smart TV' is any TV that has built-in Internet connectivity, allowing it to access a range of online services including video on demand, social networking and instant messaging. Some TVs even have a fully featured web browser which allows access to most websites.

All though there quite a few operating systems for Smart TVs which are vendor-specific, Android has also made way into it with manufacturers like Sony offering Smart Android TVs.

IOS vs Android

Android vs iOS

Google's Android and Apple's iOS are operating systems used primarily in mobile technology, such as smartphones and tablets. Android, which is Linux-based and partly open source, is more PC-like than iOS, in that its interface and basic features are generally more customizable from top to bottom. However, iOS' uniform design elements are sometimes seen as being more user-friendly.

Android is now the world’s most commonly used smartphone platform and is used by many different phone manufacturers. iOS is only used on Apple devices, such as the iPhone.

The Comparison

Social Media

Nearly 80 percent of social media time now spent on mobile devices!

Roughly 1 in 5 minutes (19 percent) of all digital media time is spent on social sites or in social media apps across the desktop and PC.

Facebook

Facebook is a social networking site that makes it easy for you to connect and sharewith your family and friends online. Originally designed for college students, Facebook was created in 2004 by Mark Zuckerberg while he was enrolled at Harvard University. By 2006, anyone over the age of 13 with a valid email address could join Facebook. Today, Facebook is the world's largest social network, with more than 1 billion users worldwide.

Snapchat

Snapchat is one of those social networks that's mobile-only. Its main feature is private messaging with photos and short videos that disappear within a few seconds of being viewed, but it also has public stories that can be posted to a user's profiles and viewed by any friends for up to 24 hours. Snapchat probably won't be moving to the regular web anytime soon, if at all.

Twitter

Twitter is a free social networking micro-blogging service that allows registered members to broadcast short posts called tweets. Twitter members can broadcast tweets and follow other users' tweets by using multiple platforms and devices. Tweets and replies to tweets can be sent by cell phone text message, desktop client or by posting at the Twitter.com website. 

Instagram

Instagram is one of the most popular image-sharing social networks. It's designed for users to snap photos (and now film short videos too) wherever they are so they can post them instantly. Unlike other social networks, Instagram only involves individual posts and no feature to create photo albums. You just snap or upload your photo/video, apply some quick edits, add a caption, tag it to an optional location and post it for all your followers to see. 

Trends with Mobile and Social Media


Trend #1 – Most people access social media on mobile devices

The ubiquity of social media usage, especially on mobile devices, can’t be overstated.

 In 2014, it was found that 71% of social network users accessed those networks through a mobile device. 

In response to this trend, all of the major social networks are reinventing themselves for smaller screens. 

The most successful marketing efforts will reflect social platforms as presented via mobile technology.

Trend #2 – Niche mobile apps are replacing static landing pages

Your app, instead of a static landing page on your website, can lead directly to a sale. And your prospects might find out about that app through social media.

Such “niche apps” are an exciting development in mobile marketing, particularly because they offer several distinct advantages : 

  • They are focused on a specific vertical, product or event or market.
  • They are not made to compete with big apps –and they don’t have to. 
  • They offer all the marketing advantages of mobile apps in general. 

Trend #3 – News is being consumed more via mobile technology and social media than ever before

The days of the almighty newspaper are well behind us. 63% of Twitter users and the same percentage of Facebook users say that the social networks are major sources of news extending beyond their personal lives.

What does this mean for B2B marketers? Consumers are willing to engage on social networks with news sources that they’ve come to trust. And if your brand is a respected source of industry-related news among your prospects, you can benefit from this trend in mobile and social news-reading.

Trend #4 – Social network users’ choice of platform equals natural market segmentation

While younger people move away from Facebook and Twitter for newer platforms such as Instagram and Snapchat, older executives and managers can be found in a higher percentage on LinkedIn and Google+. Furthermore, the younger the user, the more likely they are to be viewing social media on their mobile phone.

Information like this can be invaluable for your marketing strategy. In the B2B space, you certainly won’t be marketing directly to teenagers, but you might want to think about market segmentation by age. 

Trend #5 – “Interactive” and “native” ads offer better user experience and greater ROI

Social media is all about choice-driven connectivity: people engage with other people they like and the brands they trust. And, as far as mobile technology is concerned, the average premium smartphone is a Swiss Army knife of entertainment and productivity tools. Put all of that together, and the message is: B2B mobile ads should be built on the backbone of connectivity and intuitive usage.

Two types of ads harness this power: interactive ads and native ads. Interactive ads, quite simply, are ads that ask for involvement and feedback from users. Marketers can use these valuable interactions not only to solidify customer relationships, but for behavioral analysis and tweaking, leading to maximized ROI. As examples, Google offers both interactive video ads and interactive interstitial ads (that is, ads within apps) for marketers seeking new levels of lead engagement.

Native ads, on the other hand, involve varying levels of interactivity, but are more focused on providing the user a natural experience with the brand. These ads are designed to look just like regular content inside a platform a user is already engaged with, and are usually labeled in small print as “sponsored” posts. Such ads might appear, for example, in the user’s Facebook News Feed or Twitter stream.

Analytics

Mobile analytics involves measuring and analyzing data generated by mobile platforms and properties, such as mobile sites and mobile applications. With mobile analytics data, you can improve your cross-channel marketing initiatives, optimize the mobile experience for your customers, and grow mobile user engagement and retention.

App Analytics

App analytics, or mobile app analytics, is the measurement and analysis of data generated when users interact with your mobile applications. It is also possible to measure application crashes, customer journey funnels, offline events, lifetime value, cohort analysis, and many other mobile app performance indicators.

Digital Analytics

Digital analytics encompasses the collection, measurement, analysis, visualization and interpretation of digital data illustrating user behavior on websites, mobile sites and mobile applications. An important component of digital intelligence, digital analytics enables brands and website owners to understand how their sites and apps are being found and used. 

Web Analytics

Web analytics groups together the measurement, collection, analysis and presentation of data from the Internet in order to understand and optimize how websites are used. Web analytics lets you precisely study user behavior on your websites (and mobile sites, and mobile applications, which is more largely called digital analytics).

Aplication Marketplace

PlayStore for Android

Whether this is your first smartphone or just your first using Android, there's a lot to love here, and it all starts with finding some apps to fill that new phone (or tablet) with. Google Play is the app store that Google runs, and it's also an important piece of Android's security as it scans apps before and after they're downloaded and monitors them for unusual activity. It also serves as a digital media store, offering music, magazines, books, movies, and television programs.

AppStore for iOS

App Store is a digital distribution platform, developed and maintained by Apple Inc., for mobile apps on its iOS operating system. The store allows users to browse and download apps developed with Apple's iOS software development kit. Apps can be downloaded on the iPhone smartphone, the iPod Touch handheld computer, the iPad tablet computer, and to the Apple Watch smartwatch and 4th-generation Apple TV as extensions of iPhone apps.

9 Apps and others

9Apps is a mobile application distribution platform of Alibaba mobile business group, and an international third-party Android applications and games shop. It allows global Android mobile phone users to download apps and games without logging in.

Founded in December 2013, 9Apps covers users from 100 emerging countries, including India, Indonesia, Russia, Brazil, Southeast Asia and the Middle East region. By April 2016, It has more than 26 million daily app/game downloads and more than 250 million monthly active users in 9Apps

Development Framework

A framework is the base of your future application. Its usage greatly simplifies the whole development process. Instead of writing an application from scratch and dealing with large portions of code to make your application work on different platforms – you use a framework. Apps can be built either way and the correct answer depends on what you are trying to achieve. Each app format will be decided by how and where it will be distributed.

Native

Native apps are written using the default language for the mobile platform, which is Objective C or Swift for iOS and Java for Android. Native apps are compiled and execute directly on the device. Using the platform SDK (API), the app can communicate with the platform to access device data or load data from an external website using http requests.

Hybrid

A hybrid app is a mobile app that contains a web view (essentially an isolated browser instance) to run a web application inside of a native app, using a native app wrapper that can communicate with the native device platform and the web view. This means web applications can run on a mobile device and have access to the device, such as the camera or GPS features.

Web

Mobile websites are applications that work well on a mobile device, but are accessed through the mobile browser. Sometimes they are called Web Apps. Most simply, they are websites viewed on a mobile device in a mobile browser, with the exception of being designed to fit a mobile device screen size.

Native\Hybrid\Web Responsive

A hybrid app is first coded like a website, using industry-standard Web technologies such as HTML, CSS, and JavasScript. This platform-independent code is then "wrapped" inside a native container that allows the app to access platform-specific features and to be distributed and installed like a native app.

The tradeoff is that while native apps may add more functionality, they may be more costly to build individually and to continually update with each new OS version. Hybrid apps are generally easier to build and maintain, but may not have the same richness of features. You choose between ease and power.

Ideally, a mobile app development platform will equally support all development approaches – be it Web, hybrid or native – and provide the flexibility necessary to use the development approach that supports the business goals for every app.

Mobile Development Platform

A mobile application development platform (MADP) is a type of software that allows a business to rapidly build, test and perhaps deploy mobile apps for smartphone or tablets. A business can either build its own mobile application development platform or buy one of the many third-party products available on the market. The MADPs that third-party vendors sell typically include features such as mobile Backend as a Service (BaaS) and management tools for application programming interfaces (APIs).  A MADP may also provide nativeWeb and hybrid app development capabilities as well as mobile application management (MAM) tools for deploying and securing apps.

Platform

The platform organizations needed to develop, deploy and manage mobile apps are made from many components and tools which allow a developer to write, test and deploy applications into the target platform environment. 

Front-end development tools

Front-end development tools are focused on the user interface and user experience (UI-UX) and provide the following abilities:

  • UI design tools
  • SDKs to access device features
  • Cross-platform accommodations/support

Back-end servers

Back-end tools pick up where the front-end tools leave off, and provide a set of reusable services that are centrally managed and controlled and provide the following abilities:

  • Integration with back-end systems
  • User authentication-authorization
  • Data services
  • Reusable business logic

     

Mobile App Development (copy)

Introduction

Mobile App development

In this module we will discover the client side development for mobile apps. The client side development can follow either the Native development or Hybrid development. Let us explore these strategies.

The Native - Hybrid concept in single picture

Native: All custom-built code (i.e., app logic written by a developer) is compiled natively and runs directly atop the mobile operatingsystem. The app accesses native features directly via the native API or via an abstraction layer built atop the native API.

Web hybrid: All custom-built code executes inside the mobile platform's native WebView control. The app accesses native features viaa JavaScript Bridge API.

Native hybrid: A portion of custom-built code is compiled natively and runs directly atop the mobile operating system, and a portionof custom-built code executes inside the mobile platform's native WebView control. The native portion of the app can access nativefeatures directly via the APIs while the Web code executing inside the WebView control uses a JavaScript Bridge API.

Hosted hybrid: All custom-built code executes in WebView control encapsulated within a shared prebuilt app runtime. The appaccesses native features via a JavaScript Bridge API.

Hosted metadata: All custom-built code executes in a shared proprietary prebuilt app runtime. The container provides an API toaccess native features.


Native Development

A native application (native app) is an application program that has been developed for use on a particular platform or device. Because native apps are written for a specific platform, they can interact with and take advantage of operating system features and other software that is typically installed on that platform.

Tools for native development :

  •  Android Studio for Android.
  • XCode for iOS.

Creating First Native App in Android

Creating first native app in iOS

Hybrid Apps


Hybrid development combines the best (or worst) of both the native and HTML5 worlds. We define hybrid as a web app, primarily built using HTML5 and JavaScript, that is then wrapped inside a thin native container that provides access to native platform features.

Popular tools and frameworks used for Hybrid Development:

- Corodova - Plug - in to enable HTML, JS code call the native API and functionalities

- Phonegap - Framework based on Corodova

- Ionic - To create the UI and client interactions.

Developing you Hybrid App with Ionic

Native or Hybrid

Native vs Hybrid Debate Part 1

Native vs Hybrid Debate Part 1

Mobile Development Platform (copy)

Mobile Goes "deep"

Challenges of Developing Mobile Application

Mobile Development LifeCycle

Mobile Developer Platform – Key Players

Why IBM MobileFirst Platform

IBM MobileFirst offering portfolio

What is the IBM MobileFirst Platform

The Anatomy of the IBM MobileFirst Platform

MySunlife App Overview (copy)

MySunlife App Introduction

MySunLife Mobile App

Submit and track medical, dental and vision claims and do a ton of other cool things with this sweet mobile app from Sun Life.

You can check your coverage, submit benefits claims on the go.

You can also,

  • Submit and track medical, dental and vision claims securely,
  • View full coverage details for health, drug and vision care, and
  • View remaining balances for your Health Spending Account.

All of this and more is available at your fingertips.  

The Sun Life mobile app is available for Android, iPhone and Blackberry devices.

Sign-in Activity

Login Page

login on mySunlife app with 12 digit username and password.

By the checking of "Remember me" box, username will get save, so you don't need to remember your username.

If you are A new user so go to "Register Link".



Sign-in help

forgot password, retrieve your sign-in ID

Id Incorrect, ID suspended and inactive ID.

 Help on how to register.



GB (Benifits)

Group benefits claims

Show GB claim status, weather has completed or

still in process.

Benefits

  • Submit new GB claim
  • We can see recent claims.
  • Claim coverage
  • Find Providers

Investments

Investments

Check your total invested money in Plans.

Investment can be GRS (Group retirement services) and individual investment.

here it will be showing different investment plans.

Investment Plans

  • On investment page we can see our RRSP.
  • personal investments
  • Account Number
  • Investment's total market value
  • "Make the contribution" based on some market fund calculations
  • There is saving calculators, we can use for investment calculations

DHS

Provider Search

  • Select the provider for your claim processing.
  • These providers are associated to SunLife.

Provider

  • Categorized Providers on there specialization.
  • We can search our providers depending on our needs.
  • Providers name and their phone numbers are available, so we can contact them directly.

Android Deep Dive (copy)

What is Android?

Android is an open source and Linux-based Operating System for mobile devices such as smartphones and tablet computers. Android was developed by the Open Handset Alliance, led by Google, and other companies.

Android offers a unified approach to application development for mobile devices which means developers need only develop for Android, and their applications should be able to run on different devices powered by Android.

The first beta version of the Android Software Development Kit (SDK) was released by Google in 2007 where as the first commercial version, Android 1.0, was released in September 2008.

On June 27, 2012, at the Google I/O conference, Google announced the next Android version, 4.1 Jelly Bean. Jelly Bean is an incremental update, with the primary aim of improving the user interface, both in terms of functionality and performance.

The source code for Android is available under free and open source software licenses. Google publishes most of the code under the Apache License version 2.0 and the rest, Linux kernel changes, under the GNU General Public License version 2.

Why Android ?


Android History

The history and versions of android are interesting to know. The code names of android ranges from A to J currently, such as Aestro, Blender, Cupcake, Donut, Eclair, Froyo, Gingerbread, Honeycomb, Ice Cream Sandwitch, Jelly Bean, KitKat and Lollipop. Let's understand the android history in a sequence.

1) Initially, Andy Rubin founded Android Incorporation in Palo Alto, California, United States in October, 2003.

2) In 17th August 2005, Google acquired android Incorporation. Since then, it is in the subsidiary of Google Incorporation.

3) The key employees of Android Incorporation are Andy Rubin, Rich Miner, Chris White and Nick Sears.

4) Originally intended for camera but shifted to smart phones later because of low market for camera only.

5) Android is the nick name of Andy Rubin given by coworkers because of his love to robots.

6) In 2007, Google announces the development of android OS.

7) In 2008, HTC launched the first android mobile.

Android Framework


Android operating system is a stack of software components which is roughly divided into five sections and four main layers as shown above in the architecture diagram.

Linux kernel

At the bottom of the layers is Linux - Linux 3.6 with approximately 115 patches. This provides a level of abstraction between the device hardware and it contains all the essential hardware drivers like camera, keypad, display etc. Also, the kernel handles all the things that Linux is really good at such as networking and a vast array of device drivers, which take the pain out of interfacing to peripheral hardware.

Libraries

On top of Linux kernel there is a set of libraries including open-source Web browser engine WebKit, well known library libc, SQLite database which is a useful repository for storage and sharing of application data, libraries to play and record audio and video, SSL libraries responsible for Internet security etc.

Android Libraries

This category encompasses those Java-based libraries that are specific to Android development. Examples of libraries in this category include the application framework libraries in addition to those that facilitate user interface building, graphics drawing and database access. A summary of some key core Android libraries available to the Android developer is as follows −

  • android.app − Provides access to the application model and is the cornerstone of all Android applications.

  • android.content − Facilitates content access, publishing and messaging between applications and application components.

  • android.database − Used to access data published by content providers and includes SQLite database management classes.

  • android.opengl − A Java interface to the OpenGL ES 3D graphics rendering API.

  • android.os − Provides applications with access to standard operating system services including messages, system services and inter-process communication.

  • android.text − Used to render and manipulate text on a device display.

  • android.view − The fundamental building blocks of application user interfaces.

  • android.widget − A rich collection of pre-built user interface components such as buttons, labels, list views, layout managers, radio buttons etc.

  • android.webkit − A set of classes intended to allow web-browsing capabilities to be built into applications.

Having covered the Java-based core libraries in the Android runtime, it is now time to turn our attention to the C/C++ based libraries contained in this layer of the Android software stack.

Android Runtime

This is the third section of the architecture and available on the second layer from the bottom. This section provides a key component called Dalvik Virtual Machine which is a kind of Java Virtual Machine specially designed and optimized for Android.

The Dalvik VM makes use of Linux core features like memory management and multi-threading, which is intrinsic in the Java language. The Dalvik VM enables every Android application to run in its own process, with its own instance of the Dalvik virtual machine.

The Android runtime also provides a set of core libraries which enable Android application developers to write Android applications using standard Java programming language.

Application Framework

The Application Framework layer provides many higher-level services to applications in the form of Java classes. Application developers are allowed to make use of these services in their applications.

The Android framework includes the following key services −

  • Activity Manager − Controls all aspects of the application lifecycle and activity stack.

  • Content Providers − Allows applications to publish and share data with other applications.

  • Resource Manager − Provides access to non-code embedded resources such as strings, color settings and user interface layouts.

  • Notifications Manager − Allows applications to display alerts and notifications to the user.

  • View System − An extensible set of views used to create application user interfaces.

Applications

You will find all the Android application at the top layer. You will write your application to be installed on this layer only. Examples of such applications are Contacts Books, Browser, Games etc.

Android Activity Lifecycle

If you have worked with C, C++ or Java programming language then you must have seen that your program starts from main() function. Very similar way, Android system initiates its program with in an Activity starting with a call on onCreate() callback method. There is a sequence of callback methods that start up an activity and a sequence of callback methods that tear down an activity as shown in the Activity life cycle diagram.

The Activity class defines the following call backs i.e. events. You don't need to implement all the callbacks methods. However, it's important that you understand each one and implement those that ensure your app behaves the way users expect.

When the user selects your app icon from the Home screen, the system calls the __________ method for the Activity in your app that you've declared to be the "launcher" (or "main") activity.

  • onCreate()
  • onStart()
  • onResume()

The most important java android lifecycle methods to remember include:

  • onCreate(), onStart(), onResume(), onPause(), onStop(), onDestroyView(), onDestroy()
  • onCreate(), onStart(), onResume(), onPause(), onStop(), onRestart(), onDestroy()
  • onAttach(), onCreateView(), onStart(), onPause(), onStop(), onRestart(), onDetach()

The system calls the ________ method every time your activity comes into the foreground, including when it's created for the first time.

  • onRelease()
  • onStop()
  • onDetach()

The __________ method is called before __________. Use _________ to perform larger, more CPU intensive shut-down operations, such as writing info to a database.

  • The onStop() method is called before onPause(), you should use onPause() to perform larger, more CPU intensive shut-down operations, such as writing information to a database.
  • the onPause() method is called before onStop(), you should use onPause() to perform larger, more CPU intensive shut-down operations, such as writing information to a database.
  • the onPause() method is called before onStop(), you should use onStop() to perform larger, more CPU intensive shut-down operations, such as writing information to a database.

The ________ method is a good place to verify that required system features are enabled

  • onBegin()
  • onStart()
  • onAttach()

The _________ method is your last chance to clean out resources that could lead to a memory leak.

  • onStop()
  • onDestroy()
  • onDetach()

Android App Development

Android - Application Components

Application components are the essential building blocks of an Android application. These components are loosely coupled by the application manifest file AndroidManifest.xml that describes each component of the application and how they interact.

There are following four main components that can be used within an Android application −

1. Activities

An activity represents a single screen with a user interface,in-short Activity performs actions on the screen. For example, an email application might have one activity that shows a list of new emails, another activity to compose an email, and another activity for reading emails. If an application has more than one activity, then one of them should be marked as the activity that is presented when the application is launched.

An activity is implemented as a subclass of Activity class as follows −

public class MainActivity extends Activity {}

2. Services

A service is a component that runs in the background to perform long-running operations. For example, a service might play music in the background while the user is in a different application, or it might fetch data over the network without blocking user interaction with an activity.

A service is implemented as a subclass of Service class as follows −

public class MyService extends Service {

}

3. Broadcast Receivers

Broadcast Receivers simply respond to broadcast messages from other applications or from the system. For example, applications can also initiate broadcasts to let other applications know that some data has been downloaded to the device and is available for them to use, so this is broadcast receiver who will intercept this communication and will initiate appropriate action.

A broadcast receiver is implemented as a subclass of BroadcastReceiverclass and each message is broadcaster as an Intent object.

public class MyReceiver  extends  BroadcastReceiver {

   public void onReceive(context,intent){}

}

4. Content Providers

A content provider component supplies data from one application to others on request. Such requests are handled by the methods of the ContentResolverclass. The data may be stored in the file system, the database or somewhere else entirely.

A content provider is implemented as a subclass of ContentProvider class and must implement a standard set of APIs that enable other applications to perform transactions.

public class MyContentProvider extends  ContentProvider {

   public void onCreate(){}

}

IBM Mobile First Deep Dive (copy)

IBM MobileFirst End-to-End Demo

IBM MobileFirst End-to-End Demo

This demo showcases the end-to-end capabilities of the IBM MobileFirst Platform giving an overview  of all the scenarios ranging from User, Developer, Tester etc.