SlideShare uma empresa Scribd logo
1 de 58
Baixar para ler offline
Welcome... to Google IO 11; ooops...
                                       sorry,
                      GTUG welcomes you to the Android launch




Friday, May 6, 2011
Location: San Francisco, California




Friday, May 6, 2011
nah!! just Kidding...




Friday, May 6, 2011
Google Uganda - Android Developer Launch
                             Kampala, Uganda
                                 May, 2011




Friday, May 6, 2011
Android Awesomeness

          Victor Miclovich, Android developer + enthusiast
          twitter:@vicmiclovich
          http://cwezi.com
          http://mspoti.com
          http://storyspaces.org
          http://thekuyuproject.org
Friday, May 6, 2011
Introducing Android Devices

                Fun and Easy to use
                communication on the go
                Online
                You won’t get lost
                You can get rid of keys




Friday, May 6, 2011
Fun and Easy to use
                      Cool graphics




                                      lots of power under the hood for
                                                  gaming




Friday, May 6, 2011
Key-lessness
    lose the key pad... new devices designed to be touch-
      screen compatible; Android takes it a notch higher:
                          multitouch




Friday, May 6, 2011
Communication
                      Gmail




 And obviously:
 Web browser,
   Basic BT,
      etc.


Friday, May 6, 2011
Online connectivity...

   Android OS is designed to enable device
     connectivity to the networked world




Friday, May 6, 2011
A-O-B
                                                            very true... Android OS
                                                            lays out hardware
                                                            requirements and
                                                            conditions that phone
                                                            manufacturers should
                                                            follow in order to have
                                                            well optimized
                                                            operations




                      Lots of power under the hood >>> in comes “App
                      development”




Friday, May 6, 2011
Application Development
          $> Assumptions
          $> Framework
          $> Piecing the UI together
          $> Basic networking
          $> Services (RESTful web service intro)




Friday, May 6, 2011
Assumptions


                You’ve read the
                handout or have it
                close by to guide you...




Friday, May 6, 2011
About Android }-*->F-work




Friday, May 6, 2011
What is a mobile app?

         a set of user interfaces arranged to form a pattern

                      these patterns tend to accomplish tasks!!!




Friday, May 6, 2011
How to design an app?
                Start with an idea
                Research the idea (ask around: UCD)
                Concept it (use storyboards, write! write!)
                Prototype it
                Start coding
                Iterate (repeat step 1 or 2)



Friday, May 6, 2011
Isn’t that easy?




Friday, May 6, 2011
How?
                        ?
                        ?
                        ?
                        ?
                        ?
                      how?

Friday, May 6, 2011
Android UIs


                      2 ways of working magic with apps-->>




Friday, May 6, 2011
One way is...



                through a declarative approach...




Friday, May 6, 2011
Declarative user interface
                      <?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="fill_parent"
                        	android:text="@string/splash"
                        />
                      </LinearLayout>




Friday, May 6, 2011
another way is to...

                                                  examples:
                                                     *swing
                      use a programmatic approach...
                                                      *gwt

       Google advises programmers to choose option 1)
                            why?
                      ->It is cleaner + keeps your code easy to maintain
                      ->In case you make app changes, it is easy to do


Friday, May 6, 2011
what to do?

                You’ll use both approaches
                      Declarative approach to describe how something
                      looks or appears such what a button should look like
                      Programmatic approach to give life to the UI
                      component such as a button




Friday, May 6, 2011
user interface design...




Friday, May 6, 2011
Android UID


                      Views
                      Layouts




Friday, May 6, 2011
Views



                Everything you see through your screen is a view




Friday, May 6, 2011
Examples of Views

                                        ImageView (image)
                TextView (text)         MapView (to view
                ButtonView (buttons)    maps)

                ListView (lists)        WebView (embedded
                                        web + webkit
                EditView (text boxes)   rendering)




Friday, May 6, 2011
Layouts


                Organize views
                group view components together




Friday, May 6, 2011
Examples Layouts

                LinearLayouts
                TableLayouts
                FrameLayout
                RelativeLayout
                AbsoluteLayout (using (x,y) coord. system)




Friday, May 6, 2011
Notes


                Layouts are resizable (expand with content)
                      expand with the different device sizes (better
                      graphics rendering that supports)
                Layouts are customizable




Friday, May 6, 2011
What else in Android?

                Services that will run in the background
                Intents and broadcasting (that support in-app
                notification and instructions)
                lots of crazy cool stuff... just need to dig deeper than
                45 minutes! lol!




Friday, May 6, 2011
Prerequisites

                Java programming
                Read the handout
                      watch out for things like the application life cycle, etc.
                      Ask questions at the end




Friday, May 6, 2011
Code


Friday, May 6, 2011
Layout parameters

                Specify the way layouts appear
                Basically in your xml files:
                      android:layout_height = “ <some height>”
                      android:layout_width = “ <some width>”




Friday, May 6, 2011
¿Tip!

              When looking thru’ documentation, start with the
              specific less abstract view/class or layout then look
              at what it inherits from parent class




Friday, May 6, 2011
App components (java classes)
                                     analogous to a screen
                Activities
                                      respond to broadcast intents/
                BroadcastReceivers
                                                 msgs
                Services
                ContentProviders     tasks that run in the background

                                     apps can share data


Friday, May 6, 2011
Activities




Friday, May 6, 2011
an activity (-ies)
                a UI screen or what appears before the user as whole
                An Activity is also a java class
                Activities can also be
                      faceless
                      in a floating window
                      just return a value (boolean or other)



Friday, May 6, 2011
Intents




Friday, May 6, 2011
Intents
                Intents help describe what you want done (verb words
                + objects)
                      Pick photo from album
                      Delete music
                      Make a call
                Android matches Intent with Activity (object) that can
                best provide a service



Friday, May 6, 2011
Note

Activities and BroadcastReceivers describe what intents
    they can service in their IntentFilters through the
              AndroidManifest.xml file




Friday, May 6, 2011
BroadcastReceivers




Friday, May 6, 2011
BroadcastReceivers


                components designed to respond to Broadcast Intents


                also, apps can create and broadcast their own Intents
                as well.




Friday, May 6, 2011
Servers




Friday, May 6, 2011
Services

                These are components that run in the background...
                      A music player keeps running even when you choose
                      to start looking through your gallery
                      You can type a message while listening to music
                      Download a pdf while browsing Youtube
                      etc.



Friday, May 6, 2011
ContentProviders




Friday, May 6, 2011
ContentProviders
                A ContentProvider enables sharing of data across
                different apps
                      some apps can poll the address book
                      an app could use your gallery photos, etc.
                Provides a single unified API for
                      CRUD operations
                Content is represented by a URI and MIME type


Friday, May 6, 2011
Other issues of great importance...




Friday, May 6, 2011
Persisting data

                Some apps need to cache or store data inside of the
                phone (email, messages, attachments via bluetooth,
                etc.)
                Android provides a couple of ways to store your data
                      as a flat file
                      in a database (SQLite)



Friday, May 6, 2011
Note


                There are lots of useful APIs to interact with the
                database, file system, etc.
                Android is powerful and quite large
                Look around to see what you can do with it...




Friday, May 6, 2011
Going forward...




Friday, May 6, 2011
Packaging

                Android apps are packaged in .apk files
                Everything needed to run your app is found in the apk
                It also includes your application manifest file (where
                permissions for activities and other predefined settings
                are saved up) {look at handout for more info in app}




Friday, May 6, 2011
Resources

                Android defines resources an app uses in the res/ folder
                      res/layout (contains layout rules)

                      res/drawable (for drawing)

                      res/anim (for animations your app might need)

                      res/values (externalized values for strings, colors, styles and lots more)

                      res/xml (general xml files that are needed at run time such as a settings.xml file, etc.)

                      res/raw (binary files like sound are defined in there)




Friday, May 6, 2011
Assets




Friday, May 6, 2011
Assets

                A lot similar to resources (from slides before)
                Any kind of file can be stored (make sure it doesn’t
                complete the SD card memory or other)
                Differences are:
                      assets are read only
                      InputStream class (methods) access assets



Friday, May 6, 2011
The Networked world...




Friday, May 6, 2011
so much to say...

                Trending way of development
                      use an API to expose a service your mobile app can
                      use
                      Your app can persist data in a database if network is
                      unavailable
                      Apps are so much fun when connected to the
                      Internet



Friday, May 6, 2011
The End...
                                More might come in the future,
                      http://cwezi.com/trainings (coming soon)


                               vicmiclovich{at}gmail.com




Friday, May 6, 2011

Mais conteúdo relacionado

Mais procurados

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web DevelopmentRobert J. Stein
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android Ranjith Kumar
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Mobile application development
Mobile application developmentMobile application development
Mobile application developmentEric Cattoir
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in androidPrawesh Shrestha
 
Android testing
Android testingAndroid testing
Android testingJinaTm
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android DevelopmentAly Abdelkareem
 
Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application developmentChandan Maurya
 
Android app development
Android app developmentAndroid app development
Android app developmentTanmoy Roy
 
Android styles and themes
Android styles and themesAndroid styles and themes
Android styles and themesSourabh Sahu
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android FragmentsSergi Martínez
 
Android share preferences
Android share preferencesAndroid share preferences
Android share preferencesAjay Panchal
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC ArchitecturePrem Sanil
 

Mais procurados (20)

Advanced Web Development
Advanced Web DevelopmentAdvanced Web Development
Advanced Web Development
 
Android intents
Android intentsAndroid intents
Android intents
 
Different types of mobile apps
Different types of mobile appsDifferent types of mobile apps
Different types of mobile apps
 
Introduction to Android
Introduction to Android Introduction to Android
Introduction to Android
 
Android Web app
Android Web app Android Web app
Android Web app
 
Broadcast Receiver
Broadcast ReceiverBroadcast Receiver
Broadcast Receiver
 
Mobile application development
Mobile application developmentMobile application development
Mobile application development
 
Mobile Application Testing
Mobile Application TestingMobile Application Testing
Mobile Application Testing
 
Introduction to fragments in android
Introduction to fragments in androidIntroduction to fragments in android
Introduction to fragments in android
 
Android testing
Android testingAndroid testing
Android testing
 
Android Fragment
Android FragmentAndroid Fragment
Android Fragment
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Introduction to mobile application development
Introduction to mobile application developmentIntroduction to mobile application development
Introduction to mobile application development
 
Android app development
Android app developmentAndroid app development
Android app development
 
Android styles and themes
Android styles and themesAndroid styles and themes
Android styles and themes
 
Introduction to Android Fragments
Introduction to Android FragmentsIntroduction to Android Fragments
Introduction to Android Fragments
 
Android Location and Maps
Android Location and MapsAndroid Location and Maps
Android Location and Maps
 
Test automation process
Test automation processTest automation process
Test automation process
 
Android share preferences
Android share preferencesAndroid share preferences
Android share preferences
 
MVC Architecture
MVC ArchitectureMVC Architecture
MVC Architecture
 

Destaque

Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - PresentationAtul Panjwani
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The BasicsMike Desjardins
 
Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...Neha Jella
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Developmentdonnfelker
 
Android Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCHAndroid Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCHKeith Levi Lumanog
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android StudioSuyash Srijan
 
Android vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and DesignAndroid vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and DesignJeremy Johnson
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating systemSalma Begum
 

Destaque (10)

Introduction to Android development - Presentation
Introduction to Android development - PresentationIntroduction to Android development - Presentation
Introduction to Android development - Presentation
 
Android Development: The Basics
Android Development: The BasicsAndroid Development: The Basics
Android Development: The Basics
 
Android slides
Android slidesAndroid slides
Android slides
 
Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...Comparative study of different mobile operating system- Modern Operation Syst...
Comparative study of different mobile operating system- Modern Operation Syst...
 
Introduction to Android Development
Introduction to Android DevelopmentIntroduction to Android Development
Introduction to Android Development
 
Android Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCHAndroid Development - NOTE TAKING APP FROM SCRATCH
Android Development - NOTE TAKING APP FROM SCRATCH
 
Android studio
Android studioAndroid studio
Android studio
 
Introduction to Android and Android Studio
Introduction to Android and Android StudioIntroduction to Android and Android Studio
Introduction to Android and Android Studio
 
Android vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and DesignAndroid vs iPhone - Differences in UI Patterns and Design
Android vs iPhone - Differences in UI Patterns and Design
 
Presentation on Android operating system
Presentation on Android operating systemPresentation on Android operating system
Presentation on Android operating system
 

Semelhante a Android Development Slides

Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android DevelopmentJosé Ferreiro
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_pythonGeorge Goh
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobileluca mezzalira
 
Html5 investigation
Html5 investigationHtml5 investigation
Html5 investigationoppokui
 
Developing for Mobility
Developing for MobilityDeveloping for Mobility
Developing for MobilityScotty Logan
 
iOS7-User-Experience-Shootout
iOS7-User-Experience-ShootoutiOS7-User-Experience-Shootout
iOS7-User-Experience-ShootoutGeoffrey Dorne
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overviewDima Maleev
 
Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7Wes Yanaga
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapNur Hidayat
 
Windows phone 7 application development
Windows phone 7 application developmentWindows phone 7 application development
Windows phone 7 application developmentMannu Malhotra
 
Final ppt (mobile os)
Final ppt (mobile os)Final ppt (mobile os)
Final ppt (mobile os)Manoj Kavedia
 
Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1Zulkar Naim
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011Stefane Fermigier
 
iOS 7 UI Transition Guide
iOS 7 UI Transition GuideiOS 7 UI Transition Guide
iOS 7 UI Transition GuideEvgeny Belyaev
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report onBalveer Rathore
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System RequirementsLaura Arrigo
 

Semelhante a Android Development Slides (20)

Beginning Android Development
Beginning Android DevelopmentBeginning Android Development
Beginning Android Development
 
Pycon2011 android programming-using_python
Pycon2011 android programming-using_pythonPycon2011 android programming-using_python
Pycon2011 android programming-using_python
 
Using design pattern for mobile
Using design pattern for mobileUsing design pattern for mobile
Using design pattern for mobile
 
Html5 investigation
Html5 investigationHtml5 investigation
Html5 investigation
 
ITP / SED Day 2
ITP / SED Day 2ITP / SED Day 2
ITP / SED Day 2
 
Developing for Mobility
Developing for MobilityDeveloping for Mobility
Developing for Mobility
 
Computer project work
Computer project workComputer project work
Computer project work
 
iOS7-User-Experience-Shootout
iOS7-User-Experience-ShootoutiOS7-User-Experience-Shootout
iOS7-User-Experience-Shootout
 
Mobility
MobilityMobility
Mobility
 
Modern mobile development overview
Modern mobile development overviewModern mobile development overview
Modern mobile development overview
 
Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7Porting iPhone Apps to Windows Phone 7
Porting iPhone Apps to Windows Phone 7
 
Seminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGapSeminar Android - Pengenalan PhoneGap
Seminar Android - Pengenalan PhoneGap
 
Windows phone 7 application development
Windows phone 7 application developmentWindows phone 7 application development
Windows phone 7 application development
 
Final ppt (mobile os)
Final ppt (mobile os)Final ppt (mobile os)
Final ppt (mobile os)
 
Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1Research on Comparative Study of Different Mobile Operating System_Part-1
Research on Comparative Study of Different Mobile Operating System_Part-1
 
GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011GT Logiciel Libre - Convention Systematic 2011
GT Logiciel Libre - Convention Systematic 2011
 
iOS 7 UI Transition Guide
iOS 7 UI Transition GuideiOS 7 UI Transition Guide
iOS 7 UI Transition Guide
 
Abstract
AbstractAbstract
Abstract
 
Technical seminar report on
Technical seminar report onTechnical seminar report on
Technical seminar report on
 
Functional Requirements Of System Requirements
Functional Requirements Of System RequirementsFunctional Requirements Of System Requirements
Functional Requirements Of System Requirements
 

Mais de Victor Miclovich

Mais de Victor Miclovich (7)

Django Girls Mbale [victor's sessions]
Django Girls Mbale [victor's sessions]Django Girls Mbale [victor's sessions]
Django Girls Mbale [victor's sessions]
 
Google devfest makerere university
Google devfest makerere universityGoogle devfest makerere university
Google devfest makerere university
 
Okfest
OkfestOkfest
Okfest
 
Story spaces pitch
Story spaces pitchStory spaces pitch
Story spaces pitch
 
Mobile communities and innovation
Mobile communities and innovationMobile communities and innovation
Mobile communities and innovation
 
Crowdmapping
CrowdmappingCrowdmapping
Crowdmapping
 
Build Apps
Build AppsBuild Apps
Build Apps
 

Último

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxLoriGlavin3
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfMounikaPolabathina
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsNathaniel Shimoni
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfLoriGlavin3
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demoHarshalMandlekar2
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningLars Bell
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxLoriGlavin3
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfAddepto
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 

Último (20)

Digital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptxDigital Identity is Under Attack: FIDO Paris Seminar.pptx
Digital Identity is Under Attack: FIDO Paris Seminar.pptx
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
What is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdfWhat is DBT - The Ultimate Data Build Tool.pdf
What is DBT - The Ultimate Data Build Tool.pdf
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
Time Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directionsTime Series Foundation Models - current state and future directions
Time Series Foundation Models - current state and future directions
 
Moving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdfMoving Beyond Passwords: FIDO Paris Seminar.pdf
Moving Beyond Passwords: FIDO Paris Seminar.pdf
 
TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Sample pptx for embedding into website for demo
Sample pptx for embedding into website for demoSample pptx for embedding into website for demo
Sample pptx for embedding into website for demo
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
DSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine TuningDSPy a system for AI to Write Prompts and Do Fine Tuning
DSPy a system for AI to Write Prompts and Do Fine Tuning
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptxThe Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
The Role of FIDO in a Cyber Secure Netherlands: FIDO Paris Seminar.pptx
 
Gen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdfGen AI in Business - Global Trends Report 2024.pdf
Gen AI in Business - Global Trends Report 2024.pdf
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 

Android Development Slides

  • 1. Welcome... to Google IO 11; ooops... sorry, GTUG welcomes you to the Android launch Friday, May 6, 2011
  • 2. Location: San Francisco, California Friday, May 6, 2011
  • 4. Google Uganda - Android Developer Launch Kampala, Uganda May, 2011 Friday, May 6, 2011
  • 5. Android Awesomeness Victor Miclovich, Android developer + enthusiast twitter:@vicmiclovich http://cwezi.com http://mspoti.com http://storyspaces.org http://thekuyuproject.org Friday, May 6, 2011
  • 6. Introducing Android Devices Fun and Easy to use communication on the go Online You won’t get lost You can get rid of keys Friday, May 6, 2011
  • 7. Fun and Easy to use Cool graphics lots of power under the hood for gaming Friday, May 6, 2011
  • 8. Key-lessness lose the key pad... new devices designed to be touch- screen compatible; Android takes it a notch higher: multitouch Friday, May 6, 2011
  • 9. Communication Gmail And obviously: Web browser, Basic BT, etc. Friday, May 6, 2011
  • 10. Online connectivity... Android OS is designed to enable device connectivity to the networked world Friday, May 6, 2011
  • 11. A-O-B very true... Android OS lays out hardware requirements and conditions that phone manufacturers should follow in order to have well optimized operations Lots of power under the hood >>> in comes “App development” Friday, May 6, 2011
  • 12. Application Development $> Assumptions $> Framework $> Piecing the UI together $> Basic networking $> Services (RESTful web service intro) Friday, May 6, 2011
  • 13. Assumptions You’ve read the handout or have it close by to guide you... Friday, May 6, 2011
  • 15. What is a mobile app? a set of user interfaces arranged to form a pattern these patterns tend to accomplish tasks!!! Friday, May 6, 2011
  • 16. How to design an app? Start with an idea Research the idea (ask around: UCD) Concept it (use storyboards, write! write!) Prototype it Start coding Iterate (repeat step 1 or 2) Friday, May 6, 2011
  • 18. How? ? ? ? ? ? how? Friday, May 6, 2011
  • 19. Android UIs 2 ways of working magic with apps-->> Friday, May 6, 2011
  • 20. One way is... through a declarative approach... Friday, May 6, 2011
  • 21. Declarative user interface <?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="fill_parent" android:text="@string/splash" /> </LinearLayout> Friday, May 6, 2011
  • 22. another way is to... examples: *swing use a programmatic approach... *gwt Google advises programmers to choose option 1) why? ->It is cleaner + keeps your code easy to maintain ->In case you make app changes, it is easy to do Friday, May 6, 2011
  • 23. what to do? You’ll use both approaches Declarative approach to describe how something looks or appears such what a button should look like Programmatic approach to give life to the UI component such as a button Friday, May 6, 2011
  • 25. Android UID Views Layouts Friday, May 6, 2011
  • 26. Views Everything you see through your screen is a view Friday, May 6, 2011
  • 27. Examples of Views ImageView (image) TextView (text) MapView (to view ButtonView (buttons) maps) ListView (lists) WebView (embedded web + webkit EditView (text boxes) rendering) Friday, May 6, 2011
  • 28. Layouts Organize views group view components together Friday, May 6, 2011
  • 29. Examples Layouts LinearLayouts TableLayouts FrameLayout RelativeLayout AbsoluteLayout (using (x,y) coord. system) Friday, May 6, 2011
  • 30. Notes Layouts are resizable (expand with content) expand with the different device sizes (better graphics rendering that supports) Layouts are customizable Friday, May 6, 2011
  • 31. What else in Android? Services that will run in the background Intents and broadcasting (that support in-app notification and instructions) lots of crazy cool stuff... just need to dig deeper than 45 minutes! lol! Friday, May 6, 2011
  • 32. Prerequisites Java programming Read the handout watch out for things like the application life cycle, etc. Ask questions at the end Friday, May 6, 2011
  • 34. Layout parameters Specify the way layouts appear Basically in your xml files: android:layout_height = “ <some height>” android:layout_width = “ <some width>” Friday, May 6, 2011
  • 35. ¿Tip! When looking thru’ documentation, start with the specific less abstract view/class or layout then look at what it inherits from parent class Friday, May 6, 2011
  • 36. App components (java classes) analogous to a screen Activities respond to broadcast intents/ BroadcastReceivers msgs Services ContentProviders tasks that run in the background apps can share data Friday, May 6, 2011
  • 38. an activity (-ies) a UI screen or what appears before the user as whole An Activity is also a java class Activities can also be faceless in a floating window just return a value (boolean or other) Friday, May 6, 2011
  • 40. Intents Intents help describe what you want done (verb words + objects) Pick photo from album Delete music Make a call Android matches Intent with Activity (object) that can best provide a service Friday, May 6, 2011
  • 41. Note Activities and BroadcastReceivers describe what intents they can service in their IntentFilters through the AndroidManifest.xml file Friday, May 6, 2011
  • 43. BroadcastReceivers components designed to respond to Broadcast Intents also, apps can create and broadcast their own Intents as well. Friday, May 6, 2011
  • 45. Services These are components that run in the background... A music player keeps running even when you choose to start looking through your gallery You can type a message while listening to music Download a pdf while browsing Youtube etc. Friday, May 6, 2011
  • 47. ContentProviders A ContentProvider enables sharing of data across different apps some apps can poll the address book an app could use your gallery photos, etc. Provides a single unified API for CRUD operations Content is represented by a URI and MIME type Friday, May 6, 2011
  • 48. Other issues of great importance... Friday, May 6, 2011
  • 49. Persisting data Some apps need to cache or store data inside of the phone (email, messages, attachments via bluetooth, etc.) Android provides a couple of ways to store your data as a flat file in a database (SQLite) Friday, May 6, 2011
  • 50. Note There are lots of useful APIs to interact with the database, file system, etc. Android is powerful and quite large Look around to see what you can do with it... Friday, May 6, 2011
  • 52. Packaging Android apps are packaged in .apk files Everything needed to run your app is found in the apk It also includes your application manifest file (where permissions for activities and other predefined settings are saved up) {look at handout for more info in app} Friday, May 6, 2011
  • 53. Resources Android defines resources an app uses in the res/ folder res/layout (contains layout rules) res/drawable (for drawing) res/anim (for animations your app might need) res/values (externalized values for strings, colors, styles and lots more) res/xml (general xml files that are needed at run time such as a settings.xml file, etc.) res/raw (binary files like sound are defined in there) Friday, May 6, 2011
  • 55. Assets A lot similar to resources (from slides before) Any kind of file can be stored (make sure it doesn’t complete the SD card memory or other) Differences are: assets are read only InputStream class (methods) access assets Friday, May 6, 2011
  • 57. so much to say... Trending way of development use an API to expose a service your mobile app can use Your app can persist data in a database if network is unavailable Apps are so much fun when connected to the Internet Friday, May 6, 2011
  • 58. The End... More might come in the future, http://cwezi.com/trainings (coming soon) vicmiclovich{at}gmail.com Friday, May 6, 2011