SlideShare a Scribd company logo
1 of 120
Download to read offline
Effective Android Programming
                 with ObjectForms
        Pavel Lahoda, droidcon Berlin 2011
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
2010 : year when demand for mobile
     application development exploded.
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
So many development projects
                          So little time
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Solution ?
                           Be Effective !
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
What effective means ?
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Make less steps
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
No detours
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Releasing application is great feeling,
                      but...
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
...think about the entire lifecycle
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Create no holes
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Use right tools
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Java IDE is your best friend
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
“The most powerful tool for detecting and revealing errors is your compiler.
   No XML files should be used and code should be written in a way that gives the
   compiler the opportunity of performing this task as good as possible.”

                                                             Apache.org
                                                             The principle of string-free coding

čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Encapsulate your components
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Strings are nasty beasts
čtvrtek, 24. března 2011
XML Space invaders




čtvrtek, 24. března 2011
Avoid excessive typing
                           chevron
                           noun
                           a line or stripe in the shape of a V or an inverted V, esp. one on the sleeve of a
                           uniform indicating rank or length of service.

                           ORIGIN late Middle English (in heraldic use): from Old French, based on
                           Latin caper ‘goat’ ; compare with Latin capreoli (diminutive of caper) used
                           to mean ‘pair of rafters.’



                           -itis
                           suffix
                           forming names of inflammatory diseases : cystitis | hepatitis.
                           • informal used with reference to a tendency or state of mind that is compared
                           to a disease : creditcarditis.
                           ORIGIN from Greek feminine form of adjectives ending in -itēs (combined
                           with nosos ‘disease’ implied).



                           chevronitis
                           noun
                           a a disease characterized by obsessive typing of strange characters on the
                           computer keyboard, such as chevrons.

                           ORIGIN late 20th century fell in love of typing enormous amounts of
                           chevrons and other strange characters while “programming”, causing a lot of
                           weird injuries to fingers and hands.



čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Chevronitis hurts
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Alternative ?
                           Meet custom ViewGroup
čtvrtek, 24. března 2011
Empty ViewGroup
čtvrtek, 24. března 2011
ViewGroup constructed
čtvrtek, 24. března 2011
ViewGroup layout()
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Not quite working yet...
čtvrtek, 24. března 2011
ViewGroup onMeasure()
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
That’s a lot of Java code !
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Reflection to the rescue
čtvrtek, 24. března 2011
Simplified ViewGroup
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
How AVG works
čtvrtek, 24. března 2011
Inside ViewGroupHelper
čtvrtek, 24. března 2011
AVG Usage
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Need more declarative control ?
                     Annotations !
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Already learned a lot of principles
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Time to take it to the next level
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Keep it simple
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Don’t repeat yourself
čtvrtek, 24. března 2011
Introducing ObjectForms




                           www.objectforms.com
čtvrtek, 24. března 2011
Trivial Example
čtvrtek, 24. března 2011
Trivial Example
čtvrtek, 24. března 2011
Trivial Example
čtvrtek, 24. března 2011
Hello World
čtvrtek, 24. března 2011
Hello World
čtvrtek, 24. března 2011
Hello World
čtvrtek, 24. března 2011
Hello World
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
More declarative
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Sample application
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Inside the Sample application
čtvrtek, 24. března 2011
Both modes for free
čtvrtek, 24. března 2011
Auto Portrait mode




                              Both modes for free
čtvrtek, 24. března 2011
Auto Portrait mode       Auto Landscape mode




                              Both modes for free
čtvrtek, 24. března 2011
Object Encapsulation Example
čtvrtek, 24. března 2011
Object Encapsulation Example
čtvrtek, 24. března 2011
Object Encapsulation Example
čtvrtek, 24. března 2011
Objects as members within Object
čtvrtek, 24. března 2011
Objects as members within Object
čtvrtek, 24. března 2011
Objects as members within Object
čtvrtek, 24. března 2011
Objects as members within Object
čtvrtek, 24. března 2011
Objects as members within Object
čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Compare traditional approach
                                vs.
                     ObjectForms development
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Traditional development approach
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
Development with ObjectForms
čtvrtek, 24. března 2011
ObjectForms Demo App




                           market://details?id=objectforms.android

čtvrtek, 24. března 2011
Cross platform (GWT)




čtvrtek, 24. března 2011
čtvrtek, 24. března 2011
Don’t be afraid !
čtvrtek, 24. března 2011
Thank you.



čtvrtek, 24. března 2011
Questions & answers



                                 @perpetumdesign
                                    #objectforms
                              pavel@perpetumdesign.com

čtvrtek, 24. března 2011
Credits
                             Some of the images are from Flickr using Creative Commons License, all credit goes to their authors.
                                              Entire presentation can be freely distributed under Creative Commons license as well.
                                                                 Chevron definition taken from Dictionary application by Apple, Inc.
                                                                                        ObjectForms is property of PerpetumDesign.
                           Original idea of Java Bean introspection and UI generation came from BeanView by Will Iverson of CTG
                                Current GWT version uses wonderful reflection package Gwittir from Robert “kebernet” Cooper
                                                        All other products and trademarks are property of their respective owners.
                                                                    No chevrons were destroyed during preparing this presentation.




čtvrtek, 24. března 2011

More Related Content

More from Droidcon Berlin

From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_backDroidcon Berlin
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86Droidcon Berlin
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building AndroidDroidcon Berlin
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentationDroidcon Berlin
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Droidcon Berlin
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkraussDroidcon Berlin
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014Droidcon Berlin
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Droidcon Berlin
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidconDroidcon Berlin
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devicesDroidcon Berlin
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradioDroidcon Berlin
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon Berlin
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon Berlin
 
Droidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon Berlin
 
Droidcon2013 app analytics_huber_1und1
Droidcon2013  app analytics_huber_1und1Droidcon2013  app analytics_huber_1und1
Droidcon2013 app analytics_huber_1und1Droidcon Berlin
 
Droidcon2013 facebook stewart
Droidcon2013 facebook stewartDroidcon2013 facebook stewart
Droidcon2013 facebook stewartDroidcon Berlin
 
Droidcon 2013 ui smartphones tam hanna
Droidcon 2013 ui smartphones tam hannaDroidcon 2013 ui smartphones tam hanna
Droidcon 2013 ui smartphones tam hannaDroidcon Berlin
 

More from Droidcon Berlin (20)

Details matter in ux
Details matter in uxDetails matter in ux
Details matter in ux
 
From sensor data_to_android_and_back
From sensor data_to_android_and_backFrom sensor data_to_android_and_back
From sensor data_to_android_and_back
 
droidparts
droidpartsdroidparts
droidparts
 
new_age_graphics_android_x86
new_age_graphics_android_x86new_age_graphics_android_x86
new_age_graphics_android_x86
 
5 tips of monetization
5 tips of monetization5 tips of monetization
5 tips of monetization
 
Testing and Building Android
Testing and Building AndroidTesting and Building Android
Testing and Building Android
 
Matchinguu droidcon presentation
Matchinguu droidcon presentationMatchinguu droidcon presentation
Matchinguu droidcon presentation
 
Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3Cgm life sdk_droidcon_2014_v3
Cgm life sdk_droidcon_2014_v3
 
The artofcalabash peterkrauss
The artofcalabash peterkraussThe artofcalabash peterkrauss
The artofcalabash peterkrauss
 
Raesch, gries droidcon 2014
Raesch, gries   droidcon 2014Raesch, gries   droidcon 2014
Raesch, gries droidcon 2014
 
Android open gl2_droidcon_2014
Android open gl2_droidcon_2014Android open gl2_droidcon_2014
Android open gl2_droidcon_2014
 
20140508 quantified self droidcon
20140508 quantified self droidcon20140508 quantified self droidcon
20140508 quantified self droidcon
 
Tuning android for low ram devices
Tuning android for low ram devicesTuning android for low ram devices
Tuning android for low ram devices
 
Froyo to kit kat two years developing & maintaining deliradio
Froyo to kit kat   two years developing & maintaining deliradioFroyo to kit kat   two years developing & maintaining deliradio
Froyo to kit kat two years developing & maintaining deliradio
 
Droidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicroDroidcon2013 security genes_trendmicro
Droidcon2013 security genes_trendmicro
 
Droidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenbergDroidcon2013 commercialsuccess rannenberg
Droidcon2013 commercialsuccess rannenberg
 
Droidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedekeDroidcon2013 bootstrap luedeke
Droidcon2013 bootstrap luedeke
 
Droidcon2013 app analytics_huber_1und1
Droidcon2013  app analytics_huber_1und1Droidcon2013  app analytics_huber_1und1
Droidcon2013 app analytics_huber_1und1
 
Droidcon2013 facebook stewart
Droidcon2013 facebook stewartDroidcon2013 facebook stewart
Droidcon2013 facebook stewart
 
Droidcon 2013 ui smartphones tam hanna
Droidcon 2013 ui smartphones tam hannaDroidcon 2013 ui smartphones tam hanna
Droidcon 2013 ui smartphones tam hanna
 

Droidcon 2011: Effective android programming with object forms