SlideShare a Scribd company logo
Android Application Development
      DevFest event 2012
  @Pear Continental, Karachi

     Presenter: Imam Raza
Speaker.bio.toString()
•     Senior Software Architect @ Folio3.
•     Specialties: Enterprise Software Architecture,
      Mobile Software Architecture, Software Best
      Practices(TDD,CI ,AOP, IOC).
•     Master in computer science from KU
•     B.E (Mechanical) from NED University


Monday, September 19, 2011
Me.loveQuestions==true



Monday, September 19, 2011
Monday, September 19, 2011

Recommended for you

Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014

Polymers are large molecules, created of many subunits, and together they can compose larger elements that are fundamental to biological structure and function. This is exactly the idea behind Polymer. To create custom HTML elements, as encapsulated, reusable components that work across desktop and mobile. To achieve this, Polymer uses the latest web technologies, such as Web Components, Shadow DOM, HTML templates and imports.

polymerweb componentshtml imports
Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)

Most modern front-end JavaScript libraries provide support for component based development. Components help separate large applications into standalone building blocks with specified communication API. Let's compare Polymer elements with components from React, Angular.

devfestjavascriptangular
Polymer / WebComponents
Polymer / WebComponentsPolymer / WebComponents
Polymer / WebComponents

- Nuxeo has historically used different technologies for its UI such as ZPT, JSF, and AngularJS but is now exploring using Web Components with frameworks like Polymer and React. - Polymer helps build custom elements and adds sugar to remove boilerplate from element registration, lifecycle callbacks, and observers. Nuxeo elements could provide reusable UI building blocks. - The new Nuxeo Web UI would use the DOM as the framework and include Nuxeo elements for data and UI, layouts for convention-based dynamic loading, and testing with WCT and nuxeo-ftest.

webcomponentsmeetupnuxeo
Agenda
•   Market Statistics
•   The Android Work in Pakistan
•   Android Basics
•   Hello World
•   Main Building Blocks
•   Android Best Practices
Agenda
•   Market Statistics
•   The Android Work in Pakistan
•   Android Basics
•   Hello World
•   Main Building Blocks
•   Android Best Practices
SmartPhone Vs PC sales 2011
Category           Q4 2011      Growth        Full year 2011   Growth
                   shipments    Q4’11/Q4’10   shipments        2011/2010
                   (millions)                 (millions)
Smart Phones       158.5        56.6%         487.7            62.7%

Total Client Pcs   120.2        16.3%         414.6            14.8%

-pads              26.5         186.2%        63.2             274.2%

-netbooks          6.7          -32.4%        29.4             -25.3%

-notebooks         57.9         7.3%          209.6            7.5%

-Desktops          29.1         -3.6%         112.4            2.3%
Market Share Q2 2012
Smart Phone   %percentage   Unit sold (millions)

Android       68.1%         104.8

iOS           16.9%         26

Black Berry   4.8%          7.4

Symbian       4.4%          6.8

Windows       3.5%          5.4

Recommended for you

Web Components
Web ComponentsWeb Components
Web Components

Web Components are like Lego bricks. Easy to assemble and every piece simply fits together. But there is even more to it. Being able to create your own HTML-Tags with encapsulated style & logic changes the way you think about structuring your web applications. Get a sneak peek on how to develop scalable & maintainable applications in the future.

htmlcssfuture
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components

Web Components allow developers to build reusable custom elements that encapsulate HTML, CSS, and JavaScript. They include features like Shadow DOM for encapsulation, templates for stamping out repeated sections, HTML imports for modular code, and custom elements for defining new types of elements. Polymer makes it easy to build web applications using these new web component standards by providing polyfills and a set of pre-built reusable elements.

web componentshtmljavascript
Web Components Everywhere
Web Components EverywhereWeb Components Everywhere
Web Components Everywhere

Presentation about the native browser way for building web components. We look at examples and the pros and cons of doing it natively and using a library. At the end we look at the Angular way of wrapping custom components into Custom Elements.

webangularreact
Agenda
Market Statistics
The Android Work in Pakistan
Android Basics
Hello World
Main Building Blocks
Android Best Practices
Android Apps
•   Myomo MyProgress
•   Sony Socom Android App
•   Bitzer
•   NSDroid (NetSuite CRM)
•   Hiplink
Myomo
Google Developer Group(GDG) DevFest Event 2012 Android talk

Recommended for you

Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework

Introduction to Google Polymer 1.0 at JS Meetup in Athens, Greece. How Polymer builds a comprehensive front-end framework on the "Web Components" standard.

front-endfront-end frameworkpolymer project
Polymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill LibraryPolymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill Library

This document introduces key concepts about Web Components including Custom Elements, Templates, Shadow DOM, and HTML Imports. It explains how to define custom elements using the Custom Elements API and register them, how to use templates to populate elements, and how Shadow DOM works to encapsulate styles. Polymer is introduced as a library that makes it easier to build Web Components by providing additional capabilities like data binding and gestures beyond the core Web Components specs.

html5polymerweb standard
Polymer
PolymerPolymer
Polymer

Polymer is a library for creating reusable web components. It allows developers to define custom elements with associated JavaScript behaviors to provide sophisticated user interfaces. Key features include defining local DOM, data binding with templates, declaring custom element properties, and composing elements from other elements. Properties support default values, configuration from markup, and two-way data binding for dynamic updates.

chromepolymershadowdom
Sony Socom App
BEAM(Bitzer Enterprise)
NSDroid(NetSuite CRM)
Hiplink

Recommended for you

Polymer presentation in Google HQ
Polymer presentation in Google HQPolymer presentation in Google HQ
Polymer presentation in Google HQ

Google Polymer with Salesforce, Make mobile application in minutes by drag-drop and power it by enterprise data from Salesforce

salesforce.comgoogle polymerweb components
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination

Web Components promise to change how we think about modularity on the web, and when combined with the structure and organization of Backbone.js we can create portable, dynamic, encapsulated UI modules that fit into any web application.

backbone.jsjavascriptweb components
Levent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & PolymerLevent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & Polymer

This is in a developer-focused session on developing iOS apps with Web Components and Google Polymer. Web Components usher in a new era of web development based on encapsulated and interoperable custom elements that extend HTML itself. Built atop these new standards, Polymer makes it easier and faster to create anything from a button to a complete application across desktop, mobile, and beyond.

Agenda
Market Statistics
The Android Work in Pakistan
Android Basics
Hello World
Main Building Blocks
Android Best Practices
Android Stack
The Stack
Linux Kernel
•   Android runs on Linux. Linux
    provides:
        –     Hardware abstraction
             layer
        –    Memory
             management
        –    Process management
        –    Networking
•   Users never see Linux sub
    system
•   The adb shell command opens
    Linux shell

Recommended for you

Introduction to polymer project
Introduction to polymer projectIntroduction to polymer project
Introduction to polymer project

This document introduces Polymer, an open-source JavaScript library for building web components. It discusses how Polymer uses existing web platform APIs like templates, shadow DOM, and custom elements to create reusable components. It also explains that Polymer is not a framework, but a library that can be used to build elements on top of existing standards. Finally, it provides a simple example of creating a new custom element in Polymer and emphasizes that Polymer is production-ready.

webcomponentpolymerwebsite
Web components
Web componentsWeb components
Web components

This document discusses how to build web applications using web components. It introduces HTML5 web components standards including templates, imports, shadow DOM, and custom elements. Templates allow cloning document fragments, imports load additional HTML documents, shadow DOM encapsulates DOM parts, and custom elements enable extending or creating custom HTML elements. The document provides examples and demos of each standard and argues that web components enable encapsulation, separation of concerns, and element portability, advancing the capabilities of the web.

web componentsjavascript
Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)

This document discusses Web Components and the Polymer library. It begins with an introduction to Web Components and their benefits like reusability. It then discusses what Polymer is and why it is useful for building Web Components, including its templating features. The remainder covers Polymer 2.0 updates, tools like the Polymer CLI, learning resources, and a question/answer section.

Native Libraries
•   Pieces borrowed from other
    open source projects:
        –    Bionic, a super fast and
             small license-friendly
             libc library optimized
             for Android
•   WebKit library for fast HTML
    rendering
•   OpenGL for graphics
•   Media codecs offer support for
    major audio/video codecs
•   SQLite database ..Much more…
Question: Difference between
Java VM and Dalvik VM?
Dalvik VM
•   Dalvik VM is Android implementation of Java VM
•   Dalvik is optimized for mobile devices:
       –    Battery consumption
       –    CPU capabilities
•   Key Dalvik differences:
       –   Register-based versus stack-based VM
       –   Dalvik runs .dex files
       –   More efficient and compact implementation
       –   Different set of Java libraries than JDK
Application Framework
•   The rich set of system services wrapped in an
    intuitive Java API.
•   This ecosystem that developers can easily tap
    into is what makes writing apps for Android easy.
•   Location, web, telephony, WiFi, Bluetooth,
    notifications, media, camera, just to name a few.

Recommended for you

A brave new web - A talk about Web Components
A brave new web - A talk about Web ComponentsA brave new web - A talk about Web Components
A brave new web - A talk about Web Components

The document discusses emerging web component technologies including templates, shadow DOM, custom elements, and HTML imports. It provides examples of how each technology addresses limitations of past approaches like jQuery plugins and Angular directives by allowing developers to build reusable, encapsulated widgets and components using standard web technologies like HTML, CSS, and JavaScript. These new standards enable building complex web UIs in a modular, component-based way.

web componentshtml5polymer
Web Components
Web ComponentsWeb Components
Web Components

Web Components are an attempt to create custom, reusable components that can be used in HTML markup. They utilize several emerging web standards including Shadow DOM for encapsulation, templates for reusability, and custom elements for defining new elements. While not fully supported yet, libraries like Polymer allow using web components today through polyfills to bring these capabilities to more browsers. The document discusses how web components work and provides examples of their usage.

 
by FITC
web componentsweb design and developmenthtml5
Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web

5 años después del keynote de Jacob Kaplan-Moss en PyConAr, la web ha evolucionado y su desarrollo ha mejorado significativamente siendo mucho menos "difícil, repetitivo y aburrido". En la charla se presentarán avances recientes y se argumentará por qué y cómo el desarrollo web está abandonado su estadío "Industrial" y se está dirigiendo hacia uno "Post-industrial", donde los servicios y el "outsourcing computacional" están ganando protagonismo, proponiendo nuevas herramientas y formas de desarrollar. Más concretamente, se presentarán patrones de arquitectura y diseño junto con implementaciones de aplicaciones en Python.

pythonangularjsbootstrap
Applications
Applications

• Dalvik Executable +
  Resources = APK
• Must be signed (but
  debug key is okay
for development)
• Many markets with
  different policies
Question: What is the
difference between Android
and Java?
Android and Java
Android Java
=
Java SE
–
AWT/Swing
+
Android API

Recommended for you

Reaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and PolymerReaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and Polymer

Save 10% off ANY FITC event with discount code 'slideshare' See our upcoming events at www.fitc.ca OVERVIEW Web Components allow us to view web applications as a set of encapsulated, maintainable and reusable components, an approach which is necessary for scalability and large applications. However, they rely on the use of emerging web platform features such as the Shadow DOM, HTML Imports and Custom elements, which currently have limited browser support. But thanks to the Polymer project - a set of polyfills and an application framework using these principles – Web Components can be used today. They are bleeding edge, likely to change a bit and simultaneously insanely cool and undeniably useful. Michael Labriola invites attendees to learn how to integrate these pieces into their processes today, to bring sanity and reuse to their worlds as a result.

 
by FITC
web componentshtml5web browser
Android presentation
Android presentationAndroid presentation
Android presentation

The document provides an overview of Android application development and the main building blocks of Android apps. It discusses the Android stack including the Linux kernel, native libraries, Dalvik VM, and application framework. It also summarizes the anatomy of a basic "Hello World" Android app including code, resources, and manifest file. The main building blocks of Android apps are described as activities, intents, services, content providers, and broadcast receivers.

Web components the future is here
Web components   the future is hereWeb components   the future is here
Web components the future is here

A session I delivered in DevWeek 2016 conference. The session explains the Web Components API and later on delve into Polymer and x-tag.

javascripthtml5web components
Android SDK- what is in box?
SDK
Tools
Docs
Platforms
          –   Data
          –   Skins
          –   Images
          –   Samples
Add-ons
          –   Google
Agenda
Market Statistics
The Android Work in Pakistan
Android Basics
Hello World
Main Building Blocks
Android Best Practices
Hello World-Create New
Project
Use the Eclipse tool to create a new Android
  project.
Here are some key constructs:
Step-1

Recommended for you

GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N

Android N 7.0 introduces many new features for developers including multi-window support, notifications improvements, compiler changes using Jack and Jill, and enhancements to Doze battery optimizations. The presentation focuses on explaining the hybrid JIT/AOT compilation approach in Android N, changes to the Android runtime moving away from Dalvik to ART, impacts of multiprocess WebView, and how to test applications against Doze restrictions.

android n devfest 2016 karachi
Apple WWDC 2014 highlights
Apple WWDC 2014 highlightsApple WWDC 2014 highlights
Apple WWDC 2014 highlights

WWDC 2014 highlighted updates to OS X Yosemite, iOS 8, and developer tools. OS X Yosemite saw enhancements to Safari, Mail, and Spotlight search. iOS 8 introduced interactive notifications, improved Siri, Family Sharing, and HealthKit integration. The developer SDK saw the largest update since the App Store launch with 4000 new APIs, extensions, Touch ID support, and the new Swift programming language.

apple wwdc 2014 highlights
O'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components EnterpriseO'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components Enterprise

Ben Donohue, VP of Engineering at MediaMath, discusses the ways in which Enterprise Apps can use web components to maintain velocity and harmony while developing new products.

mediamathfluentengineering
Step-2
Step-3
Step-4
Hello World-Anatomy of App
Java Code
+
XML / Other
Resources
+
Manifest File
=
Android App

Recommended for you

Material design
Material designMaterial design
Material design

Material design is a visual design system introduced by Google that is used across platforms like Android and iOS. It uses principles of tactile materials like paper and ink and represents surfaces that interact in a shared space. Elements can have elevation and cast shadows to show relationships. Key aspects include a new theme, widgets for complex views, and APIs for custom shadows and animations. It imagines each user interface element as a sheet of paper that occupies a position in Z-space and can cast shadows below it.

material design android
Big Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data UniversityBig Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data University

Imam Raza received a Big Data University Certificate of Completion in Machine Learning with Python on January 7, 2017 after successfully completing and receiving a passing grade in the ML0101EN course.

HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components

Lo que subyace bajo lo que denominamos "HTML5" es la conversión en nativo de "frameworks" y/o tecnologías utilizadas a diario. El navegador se convierte así en una aplicación cada vez más potente gracias a que HTML5 cada vez es más poderoso. Los Web Components van en esa línea, haciendo nativo el "templating", los "custom tags" los "import" (los "includes" de otros lenguajes) y el "shadow dom". Y yo con estos pelos... Charla impartida por Luis Calvo en la última edición de Codemotion (Madrid, Spain - Nov 21-22)

codemotionhtml5
HelloWorld-Manifest File
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
  package="com.folio3"
  android:versionCode="1"
  android:versionName="1.0">
 <uses-sdk android:minSdkVersion="10" />
 <application android:icon="@drawable/icon" android:label="@string/app_name">
   <activity android:name=".HelloworldActivity"
        android:label="@string/app_name">
     <intent-filter>
       <action android:name="android.intent.action.MAIN" />
       <category android:name="android.intent.category.LAUNCHER" />
     </intent-filter>
   </activity>
</application></manifest>
HelloWorld- Layout Resource
File
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:orientation="vertical"
 android:layout_width="fill_parent"
 android:layout_height="fill_parent"
 >
<TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:text="@string/hello"
 />
</LinearLayout>
HelloWorld-JAVA File
package com.folio3;
import android.app.Activity;
import android.os.Bundle;
public class HelloAndroid extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
    }
}
Agenda
Market Statistics
The Android Work in Pakistan
Android Basics
Hello World
Main Building Blocks
Android Best Practices

Recommended for you

IT consultancy presentation
IT consultancy presentationIT consultancy presentation
IT consultancy presentation

This document profiles an IT solutions company called HK IT Solution that provides optimized and secure IT infrastructure solutions. It offers a wide range of IT consultancy services including data management, network design, security services, and cloud/virtualization solutions. The company was founded with a goal of advising clients correctly from an application standpoint to optimize investment returns. It has experience working with a range of clients in India and overseas.

Information and communication technology consultancy
Information and communication technology consultancyInformation and communication technology consultancy
Information and communication technology consultancy

GCMS is a management consulting firm that provides IT consulting services to help businesses optimize their use of technology. They follow ITIL frameworks and focus on delivering high quality, cost-effective solutions. Their services include strategic consulting, design, implementation, operations and continual improvement. They take a holistic, lifecycle approach to IT service management aimed at maximizing customer value and return on investment.

gcms ict
Audio technik Profile
Audio technik  ProfileAudio technik  Profile
Audio technik Profile

AudioTechnik is an audio consultancy and installation company that pursues high quality audio experiences through technical and conceptual design. They focus on acoustical treatments, professional audio systems for venues like auditoriums and clubs, commercial audio for spaces like restaurants and retailers, and live sound. Their team is led by experienced audio engineers and they partner with top audio brands to integrate cutting-edge technology and provide customized solutions.

audio
Main Building Blocks
•   Activities
•   Intents
•   Services
•   Content Providers
•   Broadcast Receivers
•   Fragments
Activities
An activity represents a screen
or windows
Activity LifeCycle
Activity have well-defined
lifecycle. The android OS
manages your activity by
changing its state.
You fill in the blanks
Intents
• Intents represent
  events or actions.
• They are to Android
  apps what hyperlinks
  are to websites. Sort
  of.
• Intents can be
implicit or explicit.

Recommended for you

Cygnet Consultancy Power Point
Cygnet Consultancy Power PointCygnet Consultancy Power Point
Cygnet Consultancy Power Point

Cygnet Consultancy provides procurement consulting and reverse auction services to help clients achieve significant cost savings. Through their buying group and customized support, Cygnet has helped clients in various industries secure savings of 25-65% on a wide range of goods and services. Their largest public sector auction achieved savings of over £100 million, or 43%, on a £232 million contract by leveraging competition among 2,432 bids over 14 hours of continuous bidding. Cygnet invites companies to join its buying group to combine supply volumes and leverage better pricing and contracts through their expertise in procurement.

Audio video technology consultancy services
Audio video technology consultancy servicesAudio video technology consultancy services
Audio video technology consultancy services

This short document promotes creating presentations using Haiku Deck, a tool for making slideshows. It encourages the reader to get started making their own Haiku Deck presentation and sharing it on SlideShare. In a single sentence, it pitches the idea of using Haiku Deck to easily create and share slideshow presentations online.

haikudeck
Introductions and Protfolio
Introductions and ProtfolioIntroductions and Protfolio
Introductions and Protfolio

Global Consultancy and Management Solutions (GCMS) is an IT consultancy that provides a range of services including IT strategy, operations, network management, and system integration consulting. GCMS follows ITIL frameworks and aims to be a one-stop solution provider. It offers free consulting for the service strategy phase and then guides clients through the full IT service lifecycle of service design, transition, operations, and continual improvement. GCMS' goal is to help businesses optimize their use of IT to meet objectives and ensure return on investment.

ict consultancy and service desk
Services
Services are code that runs in the background.
  They can be started and stopped. Services
  doesn’t have UI.
Service LifeCycle
•   Service also has a lifecycle,
    but it’s much simpler than
    activity’s.
•   An activity typically starts
    and stops a service to do
    some work for it in the
    background, such as play
    music, check for new
    tweets, etc.
Content Provider
•   Content Providers share
content with applications
across application
boundaries.
•   Examples of built-in
Content Providers are:
        –  Contacts,
        –  MediaStore,
        –  Settings and
           more.
Broadcast Receivers
An Intent-based publish-subscribe mechanism.
 Great for listening system events such as SMS
 messages.

Recommended for you

Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...

What do Apple, Microsoft, Dell, Samsung, Logitech and many others do as a core part of their marketing and document management strategies that the majority of those in the pro-audio and music industry fail to do? What do Avid, Shure and just a handful of others industry do that they are so successful in increasing their global market share and their international customer base? Discover the missing link between you and your clients - translation and localization - and learn why and how to implement your multilingual content strategy and tools to increase your revenue in a much faster and efficient way. Education for pro audio and music manufacturers' representatives about how – with translation and localization services - they can grow their businesses globally. Learn about an important and relatively unexplored way to boost sales from international markets.

musicpro audio translatormultilingual content
MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)

This presentation is the result of RnD carried out on different available MBaaS market solutions. It discuss the popular ones in detail

cloud mbaasopensource mbaasmbaas
AudioTechnik
AudioTechnikAudioTechnik
AudioTechnik

AudioTechnik is an audio consultancy and installation company focused on high quality audio experiences. They provide consultancy, design, integration, and installation services for home theaters, high end audio systems, architectural acoustics, and home automation. Their philosophy is to pursue the best possible audio quality through technical and conceptual design, and to integrate the latest affordable technologies.

Fragments
A Fragment represents a behavior or a portion of
user interface in an Activity.
Fragments
• Fragments were introduced in Android 3.0 (API
  level 11), primarily to support more dynamic and
  flexible UI designs on large screens, such as
  tablets.
• Fragments are lot like an activity but it must
  exists within the activity.
• DialogFragment makes it easy to show a Dialog
  that is managed as part of the Activity lifecycle.
• ListFragment makes it easy to show a list of data.
Monday, September 19, 2011
Monday, September 19, 2011
Agenda
Market Statistics
The Android Work in Pakistan
Android Basics
Hello World
Main Building Blocks
Android Best Practices

Recommended for you

Consultancy project ricardo siller execution
Consultancy project ricardo siller   executionConsultancy project ricardo siller   execution
Consultancy project ricardo siller execution

Hormigón Express seeks to position itself as a socially responsible company and communicate this attribute to the public. It has engaged consultant Ricardo Siller to design a PR campaign. Siller will analyze Hormigón Express's brand values and research Panamanian media outlets. He will then design and distribute a campaign to position Hormigón Express's brand and values nationally. Siller will monitor results and provide recommendations to manage communications and address the campaign outcomes. The timeline is 6 weeks, including research, campaign design, distribution, results reporting, and delivering a recommendations manual.

Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx

This document provides an introduction and overview for a course on mobile application development using Android. The course will cover topics like the Android UI, activities, intents, views, fragments, data storage, networking, sensors, graphics, and publishing apps on Google Play. It lists recommended textbooks and the prerequisites of having the Android SDK, Java, and an Android device or emulator. It also gives background on Android including its open source nature, architecture, history and versions.

androidmobile application developmentmobile programming
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21

This document provides an overview of the Android platform. It discusses Android's history and evolution over time. The key components of the Android software stack are explained, including the Linux kernel, Dalvik virtual machine, application framework, and system services. The document also covers core Android app development topics such as activities, intents, services, and user interface design.

Best Practices
• Use RoboGuice(DI based framework)
• Learn Activity Life Cycle
• Avoid getting activities thick
• Design views for multiple size/orientation.
• Use Fragments to better manage sub-portion of
  Activity.
• Practice Good MVC.
• Use Source Code Analyzer Tools (findbugs,
  checkstyle,PMD and CPD). Integrate these tools
  with CI Tools like Teamcity.
Monday, September 19, 2011
RoboGuice
• It’s based on dependency injection pattern just
  like Spring Framework in enterprise apps
• It takes the guesswork out of development. e.g
  checking null for getIntent().getExtras(). Casting
  findViewById().
• Make your writing unit test case easy
• It reduces your lines of code and hence the
  number of bugs see next slide for code.

Monday, September 19, 2011
class AndroidWay extends Activity {
      TextView name;
      ImageView thumbnail;
      LocationManager loc;
      Drawable icon;
      String myName;

      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        name = (TextView) findViewById(R.id.name);
        thumbnail = (ImageView) findViewById(R.id.thumbnail);
        loc = (LocationManager)
    getSystemService(Activity.LOCATION_SERVICE);
        icon = getResources().getDrawable(R.drawable.icon);
        myName = getString(R.string.app_name);
            name.setText( "Hello, " + myName );
        }
    }
Monday, September 19, 2011
class RoboWay extends RoboActivity {
     @InjectView(R.id.name)       TextView name;
     @InjectView(R.id.thumbnail)    ImageView thumbnail;
     @InjectResource(R.drawable.icon) Drawable icon;
     @InjectResource(R.string.app_name) String myName;
     @Inject             LocationManager loc;

        public void onCreate(Bundle savedInstanceState) {
          super.onCreate(savedInstanceState);
          setContentView(R.layout.main);
            name.setText( "Hello, " + myName );
        }
    }
Monday, September 19, 2011

Recommended for you

Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps

Android development is not easy and requires a lot of tools to get started. This presentation aims to give an overview of what to expect as a new developer, which tools you will use and explains the minimum knowledge to get started with your first android application.

androidactivity lifecycleandroid first steps
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development

- Android is an open source operating system developed by Google that is used primarily for touchscreen mobile devices like smartphones and tablets. It is based on the Linux kernel and allows developers to write code using Java or Kotlin. - The Android architecture consists of libraries and APIs on top of the Linux kernel, including a Dalvik virtual machine that executes applications. Apps are built using activities, fragments, intents and other components defined in the Android manifest file. - Becoming an Android developer provides good career prospects with average salaries for entry-level positions around 3 lakhs per year in India. While Android has a huge user base, developing for its diverse ecosystem of devices can be challenging compared to platforms like iOS.

android app develomentandroid for beginnersandroid basics
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth

Android developing & OAuth This document provides an overview of Android development and OAuth. It begins with an introduction to Android, covering what Android is, its update history, main products and system structure. It then discusses the Android development environment, essential tools, project structure and development flow. Key concepts like activities, intents and the activity lifecycle are explained. The document also introduces OAuth, providing examples of how it allows users to grant access to private resources without sharing credentials. It discusses some debates around OAuth 2.0 and concerns about its lack of signatures and cryptography.

oauthandroid
Compatibility
• Ability to install and run app on device.
• Huge variety of devices so developer need to
  make sure about the Hardware/Software feature
  his application needed to run.




Monday, September 19, 2011
Compatibility
• Specify uses-feature node for every API you use
• Mark essential features as required.
• Mark optional features as not required.
<uses-feature
Android:name=“android.hardware.gps”
Android:required=“true”/>


Monday, September 19, 2011
Compatibility
• Check for API existence in code.
PackageManager pm = getPackageManager();
Boolean hasCompass=
    pm.hasSystemFeature(
PackageManager.FEATURE_SENSOR_COMPASS);
If(hasCompass){
//enable things are needed
}

Monday, September 19, 2011
Compatibility
Use dp and sp instead of px:
<Button android:layout_width=“wrap_content”
  Android:layout_height=“wrap_content”
  Android:layout_marginTop=“20dp”/>
<TextView android:layout_width=“match_parent”
  Android:layout_height=“wrap_content”
  Android:textsize=“20sp”/>
Monday, September 19, 2011

Recommended for you

Project
ProjectProject
Project

The document discusses the Android Charting Component Library (ACCL) project sponsored by Netscout Systems. The project aims to develop a component library for charting in the native Android SDK to enhance charting performance and reduce application development load. It will include common chart types like pie, line, area, column, and bar charts. The library will benefit both application developers and Netscout in exploring the Android market. It is being developed in Java using the Android SDK and Eclipse IDE.

technologyandroidmobile application development
Mobile application development
Mobile application developmentMobile application development
Mobile application development

This document provides an overview of mobile application development for Android. It discusses the Android platform architecture and application framework. The key application building blocks in Android like activities, intents, services and content providers are explained. It also describes the development tools and steps to create a simple "Hello World" application in Android. These include setting up the Android SDK, creating a new project in Eclipse, designing the UI layout and adding code to the activity. The document emphasizes that Android provides APIs for common tasks and uses the Java programming language for application development.

androidlearn
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development

This document provides an introduction to Android development. It discusses what Android is, the benefits of developing for Android, Android architecture and core building blocks. Android is an open source software stack that includes an operating system, middleware and key applications for mobile devices. It is developed by the Open Handset Alliance led by Google. The document outlines Android's architecture including its use of Linux kernel, Dalvik virtual machine and Java programming language. It also describes important Android concepts like activities, views, resources, intents and AndroidManifest.xml.

androidjavagoogle
Compatibility




Monday, September 19, 2011
Compatibility-Test for different
device/screen size




 Monday, September 19, 2011
Compatibility-Test for different
device/screen size




 Monday, September 19, 2011
Advance Task Killer App is
       among 50 millions or more
             install apps
                             Why?


Monday, September 19, 2011

Recommended for you

Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide

The document provides an overview of Android and mobile application development. It discusses the history of mobile platforms and operating systems. It then describes Android in more detail, including its architecture, software stack, and how it benefits device manufacturers, application developers, and users. Key aspects of Android covered include the Linux kernel, Binder inter-process communication, and power management. The document also outlines the Android development environment and types of application artifacts.

buttonandroidprocess
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition

1) This document is an introduction to Android development presentation given by Matteo Gazzurelli, CEO of DUCKMA srl. 2) The presentation covers the basics of Android including its history and architecture, key concepts like activities, services, and content providers, and how to get started with Android development using tools like Eclipse and Android Studio. 3) It demonstrates how to create a simple Android project structure and code examples to build a basic user interface with widgets, layouts, and resources.

androiddevelopmentmobile phone
Android application development
Android application developmentAndroid application development
Android application development

This document provides an overview of Android application development. It introduces key concepts like the Android system architecture with multiple application components running on top of an Linux kernel. It demonstrates a simple "Hello World" application and covers major application components like Activities, Services, BroadcastReceivers and ContentProviders. It also discusses practical matters like storage, packaging, resources and application lifecycle. Finally, it introduces the Android development toolchain including the emulator, Eclipse plugin and debugging tools.

Performance
• Avoid creating objects. (e.g use StringBuffer) .
• Prefer static over virtual.
• Use static final for constants.
• Avoid internal getter/Setter (with Proguard you
  don’t need it.)
• Use Enhanced For Loop Syntax e.g:
     for (Foo a : mArray) { sum += a.mSplat; }
• Use native methods.
• Avoid using Float and enums
Responsiveness




Monday, September 19, 2011
Responsiveness
• “Application Not Responding”
     •     Respond to user within 5 seconds
     •     Broadcast Receiver must complete within 10 seconds
• Use Threads and AsyncTasks within Services




Monday, September 19, 2011
Source Code Analyzer Tools
•     FindBugs
•     PMD
•     CheckStyle
•     CPD : Shows code duplication
•     You can integrate them with CI Server like
      Teamcity to get consolidated reports of code
      quality of your team. We have been using it on
      our company and its really helped us in
      monitoring quality of code.
Monday, September 19, 2011

Recommended for you

Android class provider in mumbai
Android class provider in mumbaiAndroid class provider in mumbai
Android class provider in mumbai

Android Classes In Mumbai best android classes in mumbai with job assistance. our features are: expert guidance by it industry professionals lowest fees of 5000 practical exposure to handle projects well equiped lab after course resume writing guidance

android classes in mumbai best android classes in
Android quick talk
Android quick talkAndroid quick talk
Android quick talk

This document provides an overview of Android and mobile application development. It discusses the history and growth of Android, the Android architecture including activities, services, and content providers. It also covers the Android development process, tools, and best practices. The document demonstrates a simple "Hello World" Android app to introduce basic Android application building blocks.

android
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)

This slide contains a basic introduction to android platform. It introduces beginners to android development and the basics of the platform.

androiddevelopmentsoftware
Monday, September 19, 2011
Questions

More Related Content

What's hot

Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
Marcus Hellberg
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
Marcus Hellberg
 
Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponents
Gil Fink
 
Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Spyros Ioakeimidis
 
Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)
jskvara
 
Polymer / WebComponents
Polymer / WebComponentsPolymer / WebComponents
Polymer / WebComponents
Arnaud Kervern
 
Web Components
Web ComponentsWeb Components
Web Components
Nikolaus Graf
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
Rich Bradshaw
 
Web Components Everywhere
Web Components EverywhereWeb Components Everywhere
Web Components Everywhere
Ilia Idakiev
 
Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework
Kostas Karolemeas
 
Polymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill LibraryPolymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill Library
naohito maeda
 
Polymer
PolymerPolymer
Polymer
LearningTech
 
Polymer presentation in Google HQ
Polymer presentation in Google HQPolymer presentation in Google HQ
Polymer presentation in Google HQ
Harshit Pandey
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
Andrew Rota
 
Levent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & PolymerLevent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & Polymer
Erik Isaksen
 
Introduction to polymer project
Introduction to polymer projectIntroduction to polymer project
Introduction to polymer project
Christoforus Surjoputro
 
Web components
Web componentsWeb components
Web components
Gil Fink
 
Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)
Dhyego Fernando
 
A brave new web - A talk about Web Components
A brave new web - A talk about Web ComponentsA brave new web - A talk about Web Components
A brave new web - A talk about Web Components
Michiel De Mey
 
Web Components
Web ComponentsWeb Components
Web Components
FITC
 

What's hot (20)

Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Booting up with polymer
Booting up with polymerBooting up with polymer
Booting up with polymer
 
Build Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponentsBuild Reusable Web Components using HTML5 Web cComponents
Build Reusable Web Components using HTML5 Web cComponents
 
Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014Polymer - Welcome to the Future @ PyGrunn 08/07/2014
Polymer - Welcome to the Future @ PyGrunn 08/07/2014
 
Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)Polymer vs other libraries (Devfest Ukraine 2015)
Polymer vs other libraries (Devfest Ukraine 2015)
 
Polymer / WebComponents
Polymer / WebComponentsPolymer / WebComponents
Polymer / WebComponents
 
Web Components
Web ComponentsWeb Components
Web Components
 
Introduction to Web Components
Introduction to Web ComponentsIntroduction to Web Components
Introduction to Web Components
 
Web Components Everywhere
Web Components EverywhereWeb Components Everywhere
Web Components Everywhere
 
Google Polymer Framework
Google Polymer FrameworkGoogle Polymer Framework
Google Polymer Framework
 
Polymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill LibraryPolymer, A Web Component Polyfill Library
Polymer, A Web Component Polyfill Library
 
Polymer
PolymerPolymer
Polymer
 
Polymer presentation in Google HQ
Polymer presentation in Google HQPolymer presentation in Google HQ
Polymer presentation in Google HQ
 
Web Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing CombinationWeb Components + Backbone: a Game-Changing Combination
Web Components + Backbone: a Game-Changing Combination
 
Levent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & PolymerLevent-Gurses' Introduction to Web Components & Polymer
Levent-Gurses' Introduction to Web Components & Polymer
 
Introduction to polymer project
Introduction to polymer projectIntroduction to polymer project
Introduction to polymer project
 
Web components
Web componentsWeb components
Web components
 
Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)Web Components with Polymer (extra Polymer 2.0)
Web Components with Polymer (extra Polymer 2.0)
 
A brave new web - A talk about Web Components
A brave new web - A talk about Web ComponentsA brave new web - A talk about Web Components
A brave new web - A talk about Web Components
 
Web Components
Web ComponentsWeb Components
Web Components
 

Viewers also liked

Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
Roberto Allende
 
Reaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and PolymerReaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and Polymer
FITC
 
Android presentation
Android presentationAndroid presentation
Android presentation
Imam Raza
 
Web components the future is here
Web components   the future is hereWeb components   the future is here
Web components the future is here
Gil Fink
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
Imam Raza
 
Apple WWDC 2014 highlights
Apple WWDC 2014 highlightsApple WWDC 2014 highlights
Apple WWDC 2014 highlights
Imam Raza
 
O'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components EnterpriseO'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components Enterprise
MediaMath
 
Material design
Material designMaterial design
Material design
Imam Raza
 
Big Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data UniversityBig Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data University
Imam Raza
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
Paradigma Digital
 
IT consultancy presentation
IT consultancy presentationIT consultancy presentation
IT consultancy presentation
HK IT solutions... unlimited...
 
Information and communication technology consultancy
Information and communication technology consultancyInformation and communication technology consultancy
Information and communication technology consultancy
Brijesh Rawat
 
Audio technik Profile
Audio technik  ProfileAudio technik  Profile
Audio technik Profile
Audio Technik
 
Cygnet Consultancy Power Point
Cygnet Consultancy Power PointCygnet Consultancy Power Point
Cygnet Consultancy Power Point
Charles Eddolls / Cygnet Consultancy Ltd
 
Audio video technology consultancy services
Audio video technology consultancy servicesAudio video technology consultancy services
Audio video technology consultancy services
Avtcs India
 
Introductions and Protfolio
Introductions and ProtfolioIntroductions and Protfolio
Introductions and Protfolio
Brijesh Rawat
 
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Marek Makosiej
 
MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)
Imam Raza
 
AudioTechnik
AudioTechnikAudioTechnik
AudioTechnik
Audio Technik
 
Consultancy project ricardo siller execution
Consultancy project ricardo siller   executionConsultancy project ricardo siller   execution
Consultancy project ricardo siller execution
Ricardo Siller Cárdenas
 

Viewers also liked (20)

Microservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la WebMicroservices y la era Post Industrial de la Web
Microservices y la era Post Industrial de la Web
 
Reaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and PolymerReaching for the Future with Web Components and Polymer
Reaching for the Future with Web Components and Polymer
 
Android presentation
Android presentationAndroid presentation
Android presentation
 
Web components the future is here
Web components   the future is hereWeb components   the future is here
Web components the future is here
 
GDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android NGDG Devfest 2016 session on Android N
GDG Devfest 2016 session on Android N
 
Apple WWDC 2014 highlights
Apple WWDC 2014 highlightsApple WWDC 2014 highlights
Apple WWDC 2014 highlights
 
O'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components EnterpriseO'Reilly Fluent, Web Components Enterprise
O'Reilly Fluent, Web Components Enterprise
 
Material design
Material designMaterial design
Material design
 
Big Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data UniversityBig Data University ML0101EN Certificate _ Big Data University
Big Data University ML0101EN Certificate _ Big Data University
 
HTML5 Web Components
HTML5 Web ComponentsHTML5 Web Components
HTML5 Web Components
 
IT consultancy presentation
IT consultancy presentationIT consultancy presentation
IT consultancy presentation
 
Information and communication technology consultancy
Information and communication technology consultancyInformation and communication technology consultancy
Information and communication technology consultancy
 
Audio technik Profile
Audio technik  ProfileAudio technik  Profile
Audio technik Profile
 
Cygnet Consultancy Power Point
Cygnet Consultancy Power PointCygnet Consultancy Power Point
Cygnet Consultancy Power Point
 
Audio video technology consultancy services
Audio video technology consultancy servicesAudio video technology consultancy services
Audio video technology consultancy services
 
Introductions and Protfolio
Introductions and ProtfolioIntroductions and Protfolio
Introductions and Protfolio
 
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
Globalizing Music-Audio Sales - NAMM 2015 H.O.T. Zone Presentation by Marek M...
 
MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)
 
AudioTechnik
AudioTechnikAudioTechnik
AudioTechnik
 
Consultancy project ricardo siller execution
Consultancy project ricardo siller   executionConsultancy project ricardo siller   execution
Consultancy project ricardo siller execution
 

Similar to Google Developer Group(GDG) DevFest Event 2012 Android talk

Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx
ridzah12
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21
dxsaki
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
christoforosnalmpantis
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
AbhishekKumar4779
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
lzongren
 
Project
ProjectProject
Mobile application development
Mobile application developmentMobile application development
Mobile application development
umesh patil
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
Can Elmas
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide
AKASH SINGH
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
DuckMa
 
Android application development
Android application developmentAndroid application development
Android application development
Linh Vi Tường
 
Android class provider in mumbai
Android class provider in mumbaiAndroid class provider in mumbai
Android class provider in mumbai
Vibrant Technologies & Computers
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
SenthilKumar Selvaraj
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
Omolara Adejuwon
 
Introduction to Android.ppt
Introduction to Android.pptIntroduction to Android.ppt
Introduction to Android.ppt
ahmadfaisal744721
 
Introduction to Android- A session by Sagar Das
Introduction to Android-  A session by Sagar DasIntroduction to Android-  A session by Sagar Das
Introduction to Android- A session by Sagar Das
dscfetju
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop Presentation
NAILBITER
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
Troy Miles
 
Phonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidPhonebook Directory or Address Book In Android
Phonebook Directory or Address Book In Android
ABHISHEK DINKAR
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
sabi_123
 

Similar to Google Developer Group(GDG) DevFest Event 2012 Android talk (20)

Introduction to android mobile app development.pptx
Introduction to android mobile app development.pptxIntroduction to android mobile app development.pptx
Introduction to android mobile app development.pptx
 
Slides bootcamp21
Slides bootcamp21Slides bootcamp21
Slides bootcamp21
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Project
ProjectProject
Project
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android complete basic Guide
Android complete basic GuideAndroid complete basic Guide
Android complete basic Guide
 
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break editionMatteo Gazzurelli - Introduction to Android Development - Have a break edition
Matteo Gazzurelli - Introduction to Android Development - Have a break edition
 
Android application development
Android application developmentAndroid application development
Android application development
 
Android class provider in mumbai
Android class provider in mumbaiAndroid class provider in mumbai
Android class provider in mumbai
 
Android quick talk
Android quick talkAndroid quick talk
Android quick talk
 
Intro to android (gdays)
Intro to android (gdays)Intro to android (gdays)
Intro to android (gdays)
 
Introduction to Android.ppt
Introduction to Android.pptIntroduction to Android.ppt
Introduction to Android.ppt
 
Introduction to Android- A session by Sagar Das
Introduction to Android-  A session by Sagar DasIntroduction to Android-  A session by Sagar Das
Introduction to Android- A session by Sagar Das
 
Android Workshop Presentation
Android Workshop PresentationAndroid Workshop Presentation
Android Workshop Presentation
 
Cross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic FrameworkCross Platform Mobile Apps with the Ionic Framework
Cross Platform Mobile Apps with the Ionic Framework
 
Phonebook Directory or Address Book In Android
Phonebook Directory or Address Book In AndroidPhonebook Directory or Address Book In Android
Phonebook Directory or Address Book In Android
 
Basics of Android
Basics of Android Basics of Android
Basics of Android
 

Recently uploaded

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
Aurora Consulting
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Chris Swan
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
Enterprise Wired
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
Kief Morris
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
Safe Software
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
UiPathCommunity
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
huseindihon
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
Yevgen Sysoyev
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
Emerging Tech
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
BookNet Canada
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Bert Blevins
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
Sally Laouacheria
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
Adam Dunkels
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
rajancomputerfbd
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
Toru Tamaki
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Bert Blevins
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
Larry Smarr
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Mydbops
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
ScyllaDB
 

Recently uploaded (20)

Quality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of TimeQuality Patents: Patents That Stand the Test of Time
Quality Patents: Patents That Stand the Test of Time
 
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
Fluttercon 2024: Showing that you care about security - OpenSSF Scorecards fo...
 
7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf7 Most Powerful Solar Storms in the History of Earth.pdf
7 Most Powerful Solar Storms in the History of Earth.pdf
 
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
[Talk] Moving Beyond Spaghetti Infrastructure [AOTB] 2024-07-04.pdf
 
Coordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar SlidesCoordinate Systems in FME 101 - Webinar Slides
Coordinate Systems in FME 101 - Webinar Slides
 
UiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs ConferenceUiPath Community Day Kraków: Devs4Devs Conference
UiPath Community Day Kraków: Devs4Devs Conference
 
Pigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdfPigging Solutions Sustainability brochure.pdf
Pigging Solutions Sustainability brochure.pdf
 
find out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challengesfind out more about the role of autonomous vehicles in facing global challenges
find out more about the role of autonomous vehicles in facing global challenges
 
DealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 editionDealBook of Ukraine: 2024 edition
DealBook of Ukraine: 2024 edition
 
Implementations of Fused Deposition Modeling in real world
Implementations of Fused Deposition Modeling  in real worldImplementations of Fused Deposition Modeling  in real world
Implementations of Fused Deposition Modeling in real world
 
Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024Details of description part II: Describing images in practice - Tech Forum 2024
Details of description part II: Describing images in practice - Tech Forum 2024
 
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
Understanding Insider Security Threats: Types, Examples, Effects, and Mitigat...
 
20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf20240702 Présentation Plateforme GenAI.pdf
20240702 Présentation Plateforme GenAI.pdf
 
How to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptxHow to Build a Profitable IoT Product.pptx
How to Build a Profitable IoT Product.pptx
 
Choose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presenceChoose our Linux Web Hosting for a seamless and successful online presence
Choose our Linux Web Hosting for a seamless and successful online presence
 
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
論文紹介:A Systematic Survey of Prompt Engineering on Vision-Language Foundation ...
 
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly DetectionAdvanced Techniques for Cyber Security Analysis and Anomaly Detection
Advanced Techniques for Cyber Security Analysis and Anomaly Detection
 
The Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive ComputingThe Rise of Supernetwork Data Intensive Computing
The Rise of Supernetwork Data Intensive Computing
 
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - MydbopsScaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
Scaling Connections in PostgreSQL Postgres Bangalore(PGBLR) Meetup-2 - Mydbops
 
Measuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at TwitterMeasuring the Impact of Network Latency at Twitter
Measuring the Impact of Network Latency at Twitter
 

Google Developer Group(GDG) DevFest Event 2012 Android talk

  • 1. Android Application Development DevFest event 2012 @Pear Continental, Karachi Presenter: Imam Raza
  • 2. Speaker.bio.toString() • Senior Software Architect @ Folio3. • Specialties: Enterprise Software Architecture, Mobile Software Architecture, Software Best Practices(TDD,CI ,AOP, IOC). • Master in computer science from KU • B.E (Mechanical) from NED University Monday, September 19, 2011
  • 5. Agenda • Market Statistics • The Android Work in Pakistan • Android Basics • Hello World • Main Building Blocks • Android Best Practices
  • 6. Agenda • Market Statistics • The Android Work in Pakistan • Android Basics • Hello World • Main Building Blocks • Android Best Practices
  • 7. SmartPhone Vs PC sales 2011 Category Q4 2011 Growth Full year 2011 Growth shipments Q4’11/Q4’10 shipments 2011/2010 (millions) (millions) Smart Phones 158.5 56.6% 487.7 62.7% Total Client Pcs 120.2 16.3% 414.6 14.8% -pads 26.5 186.2% 63.2 274.2% -netbooks 6.7 -32.4% 29.4 -25.3% -notebooks 57.9 7.3% 209.6 7.5% -Desktops 29.1 -3.6% 112.4 2.3%
  • 8. Market Share Q2 2012 Smart Phone %percentage Unit sold (millions) Android 68.1% 104.8 iOS 16.9% 26 Black Berry 4.8% 7.4 Symbian 4.4% 6.8 Windows 3.5% 5.4
  • 9. Agenda Market Statistics The Android Work in Pakistan Android Basics Hello World Main Building Blocks Android Best Practices
  • 10. Android Apps • Myomo MyProgress • Sony Socom Android App • Bitzer • NSDroid (NetSuite CRM) • Hiplink
  • 11. Myomo
  • 17. Agenda Market Statistics The Android Work in Pakistan Android Basics Hello World Main Building Blocks Android Best Practices
  • 20. Linux Kernel • Android runs on Linux. Linux provides: – Hardware abstraction layer – Memory management – Process management – Networking • Users never see Linux sub system • The adb shell command opens Linux shell
  • 21. Native Libraries • Pieces borrowed from other open source projects: – Bionic, a super fast and small license-friendly libc library optimized for Android • WebKit library for fast HTML rendering • OpenGL for graphics • Media codecs offer support for major audio/video codecs • SQLite database ..Much more…
  • 23. Dalvik VM • Dalvik VM is Android implementation of Java VM • Dalvik is optimized for mobile devices: –  Battery consumption –  CPU capabilities • Key Dalvik differences: – Register-based versus stack-based VM – Dalvik runs .dex files – More efficient and compact implementation – Different set of Java libraries than JDK
  • 24. Application Framework • The rich set of system services wrapped in an intuitive Java API. • This ecosystem that developers can easily tap into is what makes writing apps for Android easy. • Location, web, telephony, WiFi, Bluetooth, notifications, media, camera, just to name a few.
  • 26. Applications • Dalvik Executable + Resources = APK • Must be signed (but debug key is okay for development) • Many markets with different policies
  • 27. Question: What is the difference between Android and Java?
  • 28. Android and Java Android Java = Java SE – AWT/Swing + Android API
  • 29. Android SDK- what is in box? SDK Tools Docs Platforms – Data – Skins – Images – Samples Add-ons – Google
  • 30. Agenda Market Statistics The Android Work in Pakistan Android Basics Hello World Main Building Blocks Android Best Practices
  • 31. Hello World-Create New Project Use the Eclipse tool to create a new Android project. Here are some key constructs:
  • 36. Hello World-Anatomy of App Java Code + XML / Other Resources + Manifest File = Android App
  • 37. HelloWorld-Manifest File <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.folio3" android:versionCode="1" android:versionName="1.0"> <uses-sdk android:minSdkVersion="10" /> <application android:icon="@drawable/icon" android:label="@string/app_name"> <activity android:name=".HelloworldActivity" android:label="@string/app_name"> <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application></manifest>
  • 38. HelloWorld- Layout Resource File <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="@string/hello" /> </LinearLayout>
  • 39. HelloWorld-JAVA File package com.folio3; import android.app.Activity; import android.os.Bundle; public class HelloAndroid extends Activity { /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } }
  • 40. Agenda Market Statistics The Android Work in Pakistan Android Basics Hello World Main Building Blocks Android Best Practices
  • 41. Main Building Blocks • Activities • Intents • Services • Content Providers • Broadcast Receivers • Fragments
  • 42. Activities An activity represents a screen or windows
  • 43. Activity LifeCycle Activity have well-defined lifecycle. The android OS manages your activity by changing its state. You fill in the blanks
  • 44. Intents • Intents represent events or actions. • They are to Android apps what hyperlinks are to websites. Sort of. • Intents can be implicit or explicit.
  • 45. Services Services are code that runs in the background. They can be started and stopped. Services doesn’t have UI.
  • 46. Service LifeCycle • Service also has a lifecycle, but it’s much simpler than activity’s. • An activity typically starts and stops a service to do some work for it in the background, such as play music, check for new tweets, etc.
  • 47. Content Provider • Content Providers share content with applications across application boundaries. • Examples of built-in Content Providers are: – Contacts, – MediaStore, – Settings and more.
  • 48. Broadcast Receivers An Intent-based publish-subscribe mechanism. Great for listening system events such as SMS messages.
  • 49. Fragments A Fragment represents a behavior or a portion of user interface in an Activity.
  • 50. Fragments • Fragments were introduced in Android 3.0 (API level 11), primarily to support more dynamic and flexible UI designs on large screens, such as tablets. • Fragments are lot like an activity but it must exists within the activity. • DialogFragment makes it easy to show a Dialog that is managed as part of the Activity lifecycle. • ListFragment makes it easy to show a list of data. Monday, September 19, 2011
  • 52. Agenda Market Statistics The Android Work in Pakistan Android Basics Hello World Main Building Blocks Android Best Practices
  • 53. Best Practices • Use RoboGuice(DI based framework) • Learn Activity Life Cycle • Avoid getting activities thick • Design views for multiple size/orientation. • Use Fragments to better manage sub-portion of Activity. • Practice Good MVC. • Use Source Code Analyzer Tools (findbugs, checkstyle,PMD and CPD). Integrate these tools with CI Tools like Teamcity. Monday, September 19, 2011
  • 54. RoboGuice • It’s based on dependency injection pattern just like Spring Framework in enterprise apps • It takes the guesswork out of development. e.g checking null for getIntent().getExtras(). Casting findViewById(). • Make your writing unit test case easy • It reduces your lines of code and hence the number of bugs see next slide for code. Monday, September 19, 2011
  • 55. class AndroidWay extends Activity { TextView name; ImageView thumbnail; LocationManager loc; Drawable icon; String myName; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); name = (TextView) findViewById(R.id.name); thumbnail = (ImageView) findViewById(R.id.thumbnail); loc = (LocationManager) getSystemService(Activity.LOCATION_SERVICE); icon = getResources().getDrawable(R.drawable.icon); myName = getString(R.string.app_name); name.setText( "Hello, " + myName ); } } Monday, September 19, 2011
  • 56. class RoboWay extends RoboActivity { @InjectView(R.id.name) TextView name; @InjectView(R.id.thumbnail) ImageView thumbnail; @InjectResource(R.drawable.icon) Drawable icon; @InjectResource(R.string.app_name) String myName; @Inject LocationManager loc; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); name.setText( "Hello, " + myName ); } } Monday, September 19, 2011
  • 57. Compatibility • Ability to install and run app on device. • Huge variety of devices so developer need to make sure about the Hardware/Software feature his application needed to run. Monday, September 19, 2011
  • 58. Compatibility • Specify uses-feature node for every API you use • Mark essential features as required. • Mark optional features as not required. <uses-feature Android:name=“android.hardware.gps” Android:required=“true”/> Monday, September 19, 2011
  • 59. Compatibility • Check for API existence in code. PackageManager pm = getPackageManager(); Boolean hasCompass= pm.hasSystemFeature( PackageManager.FEATURE_SENSOR_COMPASS); If(hasCompass){ //enable things are needed } Monday, September 19, 2011
  • 60. Compatibility Use dp and sp instead of px: <Button android:layout_width=“wrap_content” Android:layout_height=“wrap_content” Android:layout_marginTop=“20dp”/> <TextView android:layout_width=“match_parent” Android:layout_height=“wrap_content” Android:textsize=“20sp”/> Monday, September 19, 2011
  • 62. Compatibility-Test for different device/screen size Monday, September 19, 2011
  • 63. Compatibility-Test for different device/screen size Monday, September 19, 2011
  • 64. Advance Task Killer App is among 50 millions or more install apps Why? Monday, September 19, 2011
  • 65. Performance • Avoid creating objects. (e.g use StringBuffer) . • Prefer static over virtual. • Use static final for constants. • Avoid internal getter/Setter (with Proguard you don’t need it.) • Use Enhanced For Loop Syntax e.g: for (Foo a : mArray) { sum += a.mSplat; } • Use native methods. • Avoid using Float and enums
  • 67. Responsiveness • “Application Not Responding” • Respond to user within 5 seconds • Broadcast Receiver must complete within 10 seconds • Use Threads and AsyncTasks within Services Monday, September 19, 2011
  • 68. Source Code Analyzer Tools • FindBugs • PMD • CheckStyle • CPD : Shows code duplication • You can integrate them with CI Server like Teamcity to get consolidated reports of code quality of your team. We have been using it on our company and its really helped us in monitoring quality of code. Monday, September 19, 2011

Editor's Notes

  1. -First I would like to thank the organizers of the event that they allow me to put this slide as right of freedom of speech of every individual.-I condemn blasphemy act made recently by individuals and organizations in the name of freedom of speech that hurt millions of humans. So I would like to record my statement of condemnation to all those individual and organization who involved in this. And I would say to one sentence to them “Shame on you. Shame on you Google. Shame on you Facebook. Shame on you all on this wicked act”.-After recording my condemnation I would like to address you as your Muslim brother that lets we all start attaching ourselves with the only great personality ever sent to human kind. I would like share some Iqbal thoughts on the importance for Muslims to attached themselves with our Prophet Rasool Allah Sallahwasallam.SurahAle-Imran chapter#3,verse 64Allah did confer a great favour on the believers when He sent among them an apostle from among themselves, rehearsing unto them the Signs of Allah, sanctifying them, and instructing them in Scripture and Wisdom, while, before that, they had been in manifest error.
  2. Compatibitltyhttp://developer.android.com/guide/practices/compatibility.htmlSupporting Multiple Screens- http://developer.android.com/guide/practices/screens_support.html
  3. Compatibitltyhttp://developer.android.com/guide/practices/compatibility.htmlSupporting Multiple Screens- http://developer.android.com/guide/practices/screens_support.html
  4. http://developer.android.com/training/articles/perf-tips.html