SlideShare a Scribd company logo
1 of 41
Download to read offline
Made Simple
Who am I?


  Gabriel Dogaru

     –   Ex software developer at Synygy

     –   Ex software engineer at Amazon

     –   Co-founder TAGonSoft
Agenda

   ●   Why Android
   ●   Small Android overview
   ●   Leverage the power of java frameworks with Android
What is Android?



 “Android is a software stack for mobile devices
 that includes an operating system, middleware
 and key applications”
Why Android?
Why Android?




               ●
               ●   http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
                   http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
Why Android?




               ●
               ●   http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
                   http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
Why write native Android?
Why Native Android?




                      Indeed job trends 28.10.2012
Why Native Android?




                      Indeed job trends 28.10.2012
Why Native Android?




                  Respect your user
Who is Android?
Who is Android?
Who is Android?
Who is Android?
Android Architecture
Android Architecture
Android Kernel
Native libraries
Android Runtime
Application Framework
Applications
Building Blocks

   ●   Activity
   ●   Intent Receiver
   ●   Service
   ●   ContentProvider
Activity

    ●   A single, focused thing that the user can do
    ●   Provides a screen with which users can interact in order
        to do something
Intent Receiver
●




    ●   Handle the broadcast intents
Service

   ●   Can perform long-running operations in the background
       and does not provide a user interface
   ●   A component can bind to a service to interact with it
Content provider

   ●   Enable applications to share data
Intent

   ●   Passive data structure holding an abstract description of
       an operation to be performed
   ●   Used to start your activities
   ●   Used to start external applications
That's just old stuff from 2008

   ●   http://developer.android.com
   ●   http://www.youtube.com/results?search_query=androidology
   ●   blogs++
How about my handy Java frameworks?
The Best Programmers Are Lazy and Dumb ?!?!?
Android annotations
Helps with activities


 @NoTitle
 @Fullscreen
 @EActivity(R.layout.bookmarks)
 public class BookmarksToClipboardActivity extends Activity {

   @ViewById
   ListView bookmarkList;
   @ViewById
   EditText search;

   @AfterViews
   void initBookmarkList() {
     search.setText(??);//.....
   }
Helps with events

 //.....


 @Click( {R.id.button1, R.id.button2})
 void updateBookmarksClicked() {
     searchAsync(search.getText().toString(),userid);
 }


 @ItemClick
 void bookmarkListItemClicked(Bookmark selectedBookmark) {
     clipboardManager.setText(selectedBookmark.getUrl());
 }
 //.....
Helps with preferences
 @SharedPref
 public interface MyPrefs {
  @DefaultString("John")
     String name();


    @DefaultInt(42)
    int age();

    long lastUpdated();
 }
 …...............................
 @EActivity
 public class MyActivity extends Activity {
     @Pref
     MyPrefs_ myPrefs;
 }
Helps with Rest Services

 @Rest("http://tagonsoft.ro/")
 public interface CodecampClient {


     @Get("codecamp.php")
     @Accept(MediaType.APPLICATION_JSON)
     Codecamp getEventData();

     @Post("feedback.php")
     void sendFeedback(Feedback feedback);


     RestTemplate getRestTemplate();
 }
Got ORM? OrmLite
 @DatabaseTable(tableName = "sessions")
 public class Session {
     @DatabaseField(id = true, columnName = "_id")
     long id;
 //....
 }

 //....
 TableUtils.createTable(connectionSource, Session.class);



 //....
 dbHelper.getSessionDao().create(session);
 dbHelper.getSessionDao().queryForId(sessionID);
And it all builds up
So?
      ●   Android is the world's most popular mobile platform
      ●   Writing Android code can be fun and easy
      ●   developer.android.com is your friend
      ●   You can download example Codecamp app source code from
             https://bitbucket.org/gdogaru/codecamp_android
Thank You!




                                                 gdogaru@gmail.com
                                                 gabrieldogaru.com
tagonsoft.ro

               Please fill in the evaluation forms

More Related Content

What's hot

Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"Fwdays
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the ContinuistPaul Blundell
 
Nicholas Gustilo "Clean Android: building great mobile apps"
Nicholas Gustilo "Clean Android: building great mobile apps"Nicholas Gustilo "Clean Android: building great mobile apps"
Nicholas Gustilo "Clean Android: building great mobile apps"IT Event
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?Michal Juhas
 
Let’s be productive with spring boot
Let’s be productive with spring bootLet’s be productive with spring boot
Let’s be productive with spring bootJUGBD
 
Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)Lê Trọng-Hiệp
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...DevClub_lv
 
Automate your WordPress Workflow with Grunt.js
Automate your WordPress Workflow with Grunt.jsAutomate your WordPress Workflow with Grunt.js
Automate your WordPress Workflow with Grunt.jsJosh Lee
 
My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015Patrik Suzzi
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS DevsBarak Cohen
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...WordCamp Sydney
 
Reuse features in Android applications
Reuse features in Android applicationsReuse features in Android applications
Reuse features in Android applicationsRomain Rochegude
 
JavaScript Tools and Implementation
JavaScript Tools and ImplementationJavaScript Tools and Implementation
JavaScript Tools and ImplementationCharles Russell
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularTodd Anglin
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHubNYC DevShop
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Bibby Chung
 

What's hot (20)

Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"Алексей Волков "Введение в React Native"
Алексей Волков "Введение в React Native"
 
Survival of the Continuist
Survival of the ContinuistSurvival of the Continuist
Survival of the Continuist
 
React Native
React NativeReact Native
React Native
 
Nicholas Gustilo "Clean Android: building great mobile apps"
Nicholas Gustilo "Clean Android: building great mobile apps"Nicholas Gustilo "Clean Android: building great mobile apps"
Nicholas Gustilo "Clean Android: building great mobile apps"
 
How do we test nodejs apps?
How do we test nodejs apps?How do we test nodejs apps?
How do we test nodejs apps?
 
Let’s be productive with spring boot
Let’s be productive with spring bootLet’s be productive with spring boot
Let’s be productive with spring boot
 
Introduction to Django
Introduction to DjangoIntroduction to Django
Introduction to Django
 
Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)Agile coding dojo session #3 (2014 09-20)
Agile coding dojo session #3 (2014 09-20)
 
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
“Practical DevOps by a small team of devs” by Ilgvars Jēcis from FinoTech  at...
 
Automate your WordPress Workflow with Grunt.js
Automate your WordPress Workflow with Grunt.jsAutomate your WordPress Workflow with Grunt.js
Automate your WordPress Workflow with Grunt.js
 
My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015My experience as Eclipse Contributor - ECE 2015
My experience as Eclipse Contributor - ECE 2015
 
React Native for ReactJS Devs
React Native for ReactJS DevsReact Native for ReactJS Devs
React Native for ReactJS Devs
 
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
Unscrambling An Omelette - How Companies Can Use WordPress Better - Jeremy Ke...
 
React Native
React NativeReact Native
React Native
 
Reuse features in Android applications
Reuse features in Android applicationsReuse features in Android applications
Reuse features in Android applications
 
JavaScript Tools and Implementation
JavaScript Tools and ImplementationJavaScript Tools and Implementation
JavaScript Tools and Implementation
 
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and AngularNativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
NativeScript: Cross-Platform Mobile Apps with JavaScript and Angular
 
How We Use GitHub
How We Use GitHubHow We Use GitHub
How We Use GitHub
 
Flutter Workshop 2021 @ ARU
Flutter Workshop 2021 @ ARUFlutter Workshop 2021 @ ARU
Flutter Workshop 2021 @ ARU
 
Angular2.0@Shanghai0319
Angular2.0@Shanghai0319Angular2.0@Shanghai0319
Angular2.0@Shanghai0319
 

Similar to Android Made Simple

Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump StartHaim Michael
 
Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year  Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year Moon Technolabs Pvt. Ltd.
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 IntroductionDiego Grancini
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applicationsFriedger Müffke
 
Android material design lecture #2
Android material design   lecture #2Android material design   lecture #2
Android material design lecture #2Vitali Pekelis
 
Android Web app
Android Web app Android Web app
Android Web app Sumit Kumar
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009sullis
 
Mobile frameworks and Titanium specifically
Mobile frameworks and Titanium specificallyMobile frameworks and Titanium specifically
Mobile frameworks and Titanium specificallyJan van den Berg
 
Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_startedAhsanul Karim
 
Tooling Matters - Development tools
Tooling Matters - Development toolsTooling Matters - Development tools
Tooling Matters - Development toolsSimon Dittlmann
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app developmentAbhishekKumar4779
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsYatno Sudar
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development pptsaitej15
 
Android design patterns
Android design patternsAndroid design patterns
Android design patternsPlatty Soft
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_authlzongren
 
It's more fun in Android!
It's more fun in Android!It's more fun in Android!
It's more fun in Android!Jomar Tigcal
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portlandsullis
 

Similar to Android Made Simple (20)

Android Jump Start
Android Jump StartAndroid Jump Start
Android Jump Start
 
Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year  Which android app development tools deserve your attention this year
Which android app development tools deserve your attention this year
 
Android App Development - 01 Introduction
Android App Development - 01 IntroductionAndroid App Development - 01 Introduction
Android App Development - 01 Introduction
 
Android development first steps
Android development   first stepsAndroid development   first steps
Android development first steps
 
Delegating user tasks in applications
Delegating user tasks in applicationsDelegating user tasks in applications
Delegating user tasks in applications
 
Android material design lecture #2
Android material design   lecture #2Android material design   lecture #2
Android material design lecture #2
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
Android Intro
Android IntroAndroid Intro
Android Intro
 
Android Web app
Android Web app Android Web app
Android Web app
 
Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009Getting Started with Android - OSSPAC 2009
Getting Started with Android - OSSPAC 2009
 
Mobile frameworks and Titanium specifically
Mobile frameworks and Titanium specificallyMobile frameworks and Titanium specifically
Mobile frameworks and Titanium specifically
 
Day1 before getting_started
Day1 before getting_startedDay1 before getting_started
Day1 before getting_started
 
Tooling Matters - Development tools
Tooling Matters - Development toolsTooling Matters - Development tools
Tooling Matters - Development tools
 
Seminar on android app development
Seminar on android app developmentSeminar on android app development
Seminar on android app development
 
Introduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform AppsIntroduction Flutter for Create Multiplatform Apps
Introduction Flutter for Create Multiplatform Apps
 
Android app development ppt
Android app development pptAndroid app development ppt
Android app development ppt
 
Android design patterns
Android design patternsAndroid design patterns
Android design patterns
 
Android dev o_auth
Android dev o_authAndroid dev o_auth
Android dev o_auth
 
It's more fun in Android!
It's more fun in Android!It's more fun in Android!
It's more fun in Android!
 
Introduction to Android - Mobile Portland
Introduction to Android - Mobile PortlandIntroduction to Android - Mobile Portland
Introduction to Android - Mobile Portland
 

Recently uploaded

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...CzechDreamin
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastUXDXConf
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FIDO Alliance
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfFIDO Alliance
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoUXDXConf
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...marcuskenyatta275
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...FIDO Alliance
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyUXDXConf
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceSamy Fodil
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftshyamraj55
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIES VE
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Julian Hyde
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutesconfluent
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...FIDO Alliance
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlPeter Udo Diehl
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekCzechDreamin
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101vincent683379
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfFIDO Alliance
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty SecureFemke de Vroome
 

Recently uploaded (20)

Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
Behind the Scenes From the Manager's Chair: Decoding the Secrets of Successfu...
 
Designing for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at ComcastDesigning for Hardware Accessibility at Comcast
Designing for Hardware Accessibility at Comcast
 
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
FDO for Camera, Sensor and Networking Device – Commercial Solutions from VinC...
 
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdfIntroduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
Introduction to FDO and How It works Applications _ Richard at FIDO Alliance.pdf
 
The UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, OcadoThe UX of Automation by AJ King, Senior UX Researcher, Ocado
The UX of Automation by AJ King, Senior UX Researcher, Ocado
 
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
TEST BANK For, Information Technology Project Management 9th Edition Kathy Sc...
 
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
Choosing the Right FDO Deployment Model for Your Application _ Geoffrey at In...
 
A Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System StrategyA Business-Centric Approach to Design System Strategy
A Business-Centric Approach to Design System Strategy
 
Syngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdfSyngulon - Selection technology May 2024.pdf
Syngulon - Selection technology May 2024.pdf
 
WebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM PerformanceWebAssembly is Key to Better LLM Performance
WebAssembly is Key to Better LLM Performance
 
Oauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoftOauth 2.0 Introduction and Flows with MuleSoft
Oauth 2.0 Introduction and Flows with MuleSoft
 
IESVE for Early Stage Design and Planning
IESVE for Early Stage Design and PlanningIESVE for Early Stage Design and Planning
IESVE for Early Stage Design and Planning
 
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
Measures in SQL (a talk at SF Distributed Systems meetup, 2024-05-22)
 
Speed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in MinutesSpeed Wins: From Kafka to APIs in Minutes
Speed Wins: From Kafka to APIs in Minutes
 
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
Secure Zero Touch enabled Edge compute with Dell NativeEdge via FDO _ Brad at...
 
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo DiehlFuture Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
Future Visions: Predictions to Guide and Time Tech Innovation, Peter Udo Diehl
 
AI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří KarpíšekAI revolution and Salesforce, Jiří Karpíšek
AI revolution and Salesforce, Jiří Karpíšek
 
AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101AI presentation and introduction - Retrieval Augmented Generation RAG 101
AI presentation and introduction - Retrieval Augmented Generation RAG 101
 
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdfWhere to Learn More About FDO _ Richard at FIDO Alliance.pdf
Where to Learn More About FDO _ Richard at FIDO Alliance.pdf
 
ECS 2024 Teams Premium - Pretty Secure
ECS 2024   Teams Premium - Pretty SecureECS 2024   Teams Premium - Pretty Secure
ECS 2024 Teams Premium - Pretty Secure
 

Android Made Simple

  • 2. Who am I? Gabriel Dogaru – Ex software developer at Synygy – Ex software engineer at Amazon – Co-founder TAGonSoft
  • 3. Agenda ● Why Android ● Small Android overview ● Leverage the power of java frameworks with Android
  • 4. What is Android? “Android is a software stack for mobile devices that includes an operating system, middleware and key applications”
  • 6. Why Android? ● ● http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android? http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
  • 7. Why Android? ● ● http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android? http://www.guardian.co.uk/technology/appsblog/2012/aug/16/android-winning-apps-china-smartphone is Android?
  • 8. Why write native Android?
  • 9. Why Native Android? Indeed job trends 28.10.2012
  • 10. Why Native Android? Indeed job trends 28.10.2012
  • 11. Why Native Android? Respect your user
  • 23. Building Blocks ● Activity ● Intent Receiver ● Service ● ContentProvider
  • 24. Activity ● A single, focused thing that the user can do ● Provides a screen with which users can interact in order to do something
  • 25. Intent Receiver ● ● Handle the broadcast intents
  • 26. Service ● Can perform long-running operations in the background and does not provide a user interface ● A component can bind to a service to interact with it
  • 27. Content provider ● Enable applications to share data
  • 28. Intent ● Passive data structure holding an abstract description of an operation to be performed ● Used to start your activities ● Used to start external applications
  • 29. That's just old stuff from 2008 ● http://developer.android.com ● http://www.youtube.com/results?search_query=androidology ● blogs++
  • 30. How about my handy Java frameworks?
  • 31. The Best Programmers Are Lazy and Dumb ?!?!?
  • 33. Helps with activities @NoTitle @Fullscreen @EActivity(R.layout.bookmarks) public class BookmarksToClipboardActivity extends Activity { @ViewById ListView bookmarkList; @ViewById EditText search; @AfterViews void initBookmarkList() { search.setText(??);//..... }
  • 34. Helps with events //..... @Click( {R.id.button1, R.id.button2}) void updateBookmarksClicked() { searchAsync(search.getText().toString(),userid); } @ItemClick void bookmarkListItemClicked(Bookmark selectedBookmark) { clipboardManager.setText(selectedBookmark.getUrl()); } //.....
  • 35. Helps with preferences @SharedPref public interface MyPrefs { @DefaultString("John") String name(); @DefaultInt(42) int age(); long lastUpdated(); } …............................... @EActivity public class MyActivity extends Activity { @Pref MyPrefs_ myPrefs; }
  • 36. Helps with Rest Services @Rest("http://tagonsoft.ro/") public interface CodecampClient { @Get("codecamp.php") @Accept(MediaType.APPLICATION_JSON) Codecamp getEventData(); @Post("feedback.php") void sendFeedback(Feedback feedback); RestTemplate getRestTemplate(); }
  • 37. Got ORM? OrmLite @DatabaseTable(tableName = "sessions") public class Session { @DatabaseField(id = true, columnName = "_id") long id; //.... } //.... TableUtils.createTable(connectionSource, Session.class); //.... dbHelper.getSessionDao().create(session); dbHelper.getSessionDao().queryForId(sessionID);
  • 38. And it all builds up
  • 39. So? ● Android is the world's most popular mobile platform ● Writing Android code can be fun and easy ● developer.android.com is your friend ● You can download example Codecamp app source code from https://bitbucket.org/gdogaru/codecamp_android
  • 40.
  • 41. Thank You! gdogaru@gmail.com gabrieldogaru.com tagonsoft.ro Please fill in the evaluation forms