Showing posts with label android. Show all posts
Showing posts with label android. Show all posts

2013/11/14

Devoxx 2013 - How to make your Android apps suck. A rant.

Litrik De Roy
Android problems to avoid
  • crazy permissions. E.g.
    • directly call phone numbers
    • phone status & identity: tracking
    • retrieve other apps running
    • mock location for testing -> test-only settings...
  • splash screens :-(
  • "menu button of shame" lower right corner of app
  • Skeumorphic design
    • try to use iOS design on Android
    • tabs at the bottom of the screen
  • spammy notifications: games
  • exit confirmation "are you sure you want to exit?" -> doesn't exist..
  • portrait only mode
  • tabs without swiping
  • Jerky scrolling
  • themed buttons without selectors -> pressed, selected, active , disabled
  • app size (=feature creep)
  • flooding logcat (too many debug messages)

2011/11/14

Devoxx11: Android awesomeness

Chet Haase, Romain Guy and Philip Milne

Android 4.0: Tablet (3.0) & Phone (2.3) reunited

GridLayout: powerful & flexible lay-outing -- way too complex explanation.

Tools for profiling / debugging Android apps. "Experience matters"

  • Memory
    • dumpsys: dump info of processes running on the device
      • adb shell dumpsys meminfocom.android.Launcher: dumps heap usage details
      • dumpsys gfxinfo: graphics chip
      • dumpsys window: decompose window objects used
    • DDMS: heap dump
    • jhat:
      • generate hprof
      • convert it with hprof-conv
      • in eclipse
      • check out "rootset references" for potentially memory leaks
    • MAT: Eclipse Allocation Tracker - http://eclipse.org/mat
  • Performance
    • "use your eyes"
    • DDMS
    • track frames per second -> "trackFPS()" call in a PreDrawListener
  • UI
    • 'crazy' stuff like high speed cams: Casio Ex-F1: replay the animation in slow motion
    • HierarchyViewer:
      • ViewTree
      • PixelPerfectTree
    • ViewServer

Devoxx11: Android Jumpstart

Lars Vogel

Excellent introduction to the Android development experience.

  • tutorials on Android: www.vogella.de
  • java --> class -- through dx-tool --> dex
  • development environment: ADT for eclipse.
    • emulator: QEMU
    • DDMS: very powerful device debug mode
  • API Components:
    • View for single views & ViewGroup for combining
    • Activity: app lifecycle - onPause() is the guaranteed last call to persist data
    • Intent: transitions to other apps
      • Implicit: Android decides
      • explicit: hard coded coupling to called app
    • Toast class: display quick temporary message
    • Preferences
    • DIY Views:
      • onDraw() method
      • Path class
      • selective invalidate() call to improve performance
    • ListActivity & ListAdapter
    • Threading & Async behaviour:
      • Threads: use runOnUiThread for async updates of the UI
      • Services
      • Broadcast & Receiver