Androidify workshop
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Androidify workshop

on

  • 170 views

Android introduction slides for GDG Riga event

Android introduction slides for GDG Riga event

Statistics

Views

Total Views
170
Views on SlideShare
170
Embed Views
0

Actions

Likes
0
Downloads
1
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Androidify workshop Presentation Transcript

  • 1. Androidify Yourself!
  • 2. Alexey Buzdin Aleksey Nikolaenko @AlexeyBuzdin @echoAlexey
  • 3. Google Developers Group • Place to discuss, learn, and share passion for technology • Focused on developer culture & technical content • Free as beer
  • 4. Today’s agenda • Setup environment • Introduction to Android • Android application development • GDG Raffle http://goo.gl/HIYmeC
  • 5. Android Studio • IntelliJ IDEA based • Gradle build support • Comes with Android SDK • Layout editor with preview and much more…
  • 6. Android platform • Android is a Linux-based operating system and a software stack designed for touchscreen mobile devices
  • 7. Android Anatomy
  • 8. Android Runtime • On Android you develop in Java • ... but Android does not run Java Bytecode !
  • 9. Android Runtime • Custom Virtual Machine. Why? Constraints Designed for 64M RAM No swap Phone tech v. Desktop CPU specific Oracle JVM problems Memory Hog Slow startup IP licensing restrictions
  • 10. Anatomy of Android application • AndroidManifest • Activities • Fragments • Intents • Services • Content providers • Broadcast receivers
  • 11. Android Manifest • general configuration for your application • contains all component definitions of your appication
  • 12. Activity • An activity represents a single screen with a user interface • An activity is implemented as a subclass of Activity
  • 13. Fragment • A Fragment represents a behavior or a portion of user interface in an Activity • Affected by lifecycle of Activity • subclass of Fragment
  • 14. Intent Intent is used to invoke different components: • Start a service • Launch an activity • Display a web page • Broadcast a message
  • 15. Service • Background process that performs long- running operations or remote processes • No user interface for service • A service is implemented as a subclass of Service • Service can be local (accessed within application) or remote (scope of device)
  • 16. Content providers • Content providers are used to share data between applications • Can store data in SQLite, Web and other storages and perform CRUD operations with Content providers • subclass of ContentProvider
  • 17. Broadcast receiver • Component that responds to system-wide broadcast announcements (e.g.. Screen is turns on-off, SMS received, • Broadcast delivered as Intent • Don’t have user interface • Subclass of BroadcastReceiver
  • 18. Android UI fundamentals
  • 19. Android UI fundamentals Screen size • actual physical size, measured as the screen's diagonal • 2.55”, 3.2”, 4.0”, 10.1”, ... Android groups into four generalized sizes: • Small • Normal • Large • Xlarge
  • 20. Android UI fundamentals Screen density • quantity of pixels within a physical area of the screen (dots per inch, dpi). • "low" density screen has fewer pixels • Android groups actual screen densities into four generalized densities: • Low (ldpi, 120) • Medium (mdpi, 160) • High (hdpi, 240) • Extra high (xhdpi, 320)
  • 21. Android UI fundamentals Density-independent pixel (dp) • virtual pixel unit to express layout dimensions or position in a density-independent way • equivalent to one physical pixel on a 160 dpi screen • px = dp * (dpi / 160) • system transparently handles any scaling of the dp units
  • 22. Android UI fundamentals Best practices • Do not use hard-coded pixel values in your application code • Use size and density-specific resources • Use wrap_content, match_parent, or the dp unit for layout dimensions • Test Your Application on Multiple Screens
  • 23. Android resources
  • 24. Resources Android supports the externalization of resources • strings, colors, images, themes, menus, layouts • system resources Why? • easier to maintain, update, and manage • easier to define alternative resource values for internationalization and to support variations in hardware
  • 25. res/ & R res/ • Generated by ADT Wizard • Each resource type is stored in a different subfolder R.java • Resources from /res are „indexed“ by ADT or aapt tool • Enables to reference resources in code
  • 26. Default v. Alternative Resources • For any type of resource, we can specify default and multiple alternative resources • Default resources are used regardless of the device configuration when no alternative resources match the current configuration • Alternative resources are designed for use with a specific configuration
  • 27. How to specify Alternative Resources • Create a new directory in res/ • res/<resources_name>- <config_qualifier> • <config_qualifier> specifies a configuration for which these resources are to be used • Save your alternative resources in new directory and name it as the default resource files
  • 28. Resource types • Layouts • Simple values – Strings – Plurals – Colors – Dimensions – Styles – String or integer arrays Stored within XML files in the res/values folder
  • 29. Resource types Styles and Themes • Let your applications maintain a consistent look and feel by enabling you to specify the attribute values used by Views • The most common use of is to store the colors and fonts for an application
  • 30. Building User Interfaces
  • 31. View View • base class for all visual interface elements controls, widgets • an object that draws something on the screen that the user can interact with View Group • extends View class • an object that holds other Views View group is an invisible container that organizes child views, while the child views draw some part of the UI
  • 32. Android Layouts • A layout defines the visual structure for a user interface, such as the UI for an activity or app widget. • Can be defined in XML or programmatically during runtime. • XML layouts stored in res/layout folder and are qualified as resource
  • 33. Layout Advantages of declaring UI in XML • Separation of the presentation from the code that controls its behavior • modify UI without having to modify source code • create XML layouts for different screen orientations, different device screen sizes, and different languages • Easier to visualize the structure of your UI • Easier to design/debug UI • Visualizer tool (ADT)
  • 34. Layout example ViewGroup View
  • 35. Layout types LinearLayout • Aligns all children in a single direction - vertically or horizontally • All children are stacked one after the other • Layout weight (android: layout_weight) assigns an "importance" value to a view in terms of how much space is should occupy on the screen
  • 36. LinearLayout
  • 37. Layout types RelativeLayout • view group that displays child views in relative positions • can eliminate nested view groups and keep your layout hierarchy flat, that improves performance • specify the location of child objects relative to each other (child A to the left of child B) or to the parent
  • 38. Layout Parameters Layout Parameters (layout_something) • parent view group defines layout parameters for each child view (including the child view group) • child element must define LayoutParams that are appropriate for its parent
  • 39. Basic widget toolbox
  • 40. Questions & Answers
  • 41. Want to host a workshop or presentation? gdgriga@gmail.com