Android - the practical way

From Juneday education
Jump to: navigation, search

This is a practical aproach to learning how to program Android devices. Since there are several good learning resources out there, and some really bad ones, we will lean on these and complement with exercises and solutions, an assignment and an schedule where the concepts are introduced in an order fitting the assignment and we hope your learning.

Material

We will make use of material

We try to write the exercises to

  • introduce concepts in a practical way
  • use components or concepts the right way
  • use components or concepts in a bad way - causing build or runtime errors. It is our belief, based on our experience, that getting familiar with some know pitfals actually speeds up development in coming lectures

Pedagogic strategy

We try to use the following strategy/pattern in our material:

  • introduce using video (recorded presentation)
  • exercises and suggested solutions
  • external links
  • assignment

Requirements

It is expected you know Java to follow this course. To make our requirements a bit more clear we expect you to know how to use the following concepts:

  1. Computer introduction
  2. Computer introduction - Exercises
  3. Programming introduction
  4. Programming introduction - Exercises
  5. Setting up your environment
  6. Programming in Java
  7. Programming in Java - Exercises
  8. Our first Java program
  9. Our first Java program - Exercises
  10. Variables and types
  11. Variables and types - Exercises
  12. Expressions and operators
  13. Expressions and operators - Exercise
  14. Control flow
  15. Control flow - Exercises
  16. Chapter:Objects_-_Introduction
  17. Chapter:Objects_-_Introduction_-_Exercises
  18. Chapter:Objects_-_Relation_to_classes
  19. Chapter:Objects_-_Relation_to_classes_-_Exercises
  20. Chapter:Objects_-_Creating
  21. Chapter:Objects_-_Creating_-_Exercises
  22. Chapter:Objects_-_Using
  23. Chapter:Objects_-_Using_-_Exercises
  24. Chapter:Objects_-_Java_API_documentation
  25. Chapter:Objects_-_Java_API_documentation_-_Exercises
  26. Chapter:Objects_-_Questions_and_Answers
  27. Chapter:Classes_-_Introduction
  28. Chapter:Classes_-_Introduction_-_Exercises
  29. Chapter:Classes_-_Declaration
  30. Chapter:Classes_-_Declaration_-_Exercises
  31. Chapter:Classes_-_Packages
  32. Chapter:Classes_-_Packages_-_Exercises
  33. Chapter:Classes_-_main
  34. Chapter:Classes_-_main_-_Exercises
  35. Chapter:Classes_-_Commenting_code
  36. Chapter:Classes_-_Commenting_code_-_Exercises
  37. Chapter:Classes_-_Declaring_variables
  38. Chapter:Classes_-_Declaring_variables_-_Exercises
  39. Chapter:Classes_-_Defining_constructors
  40. Chapter:Classes_-_Defining_constructors_-_Exercises
  41. Chapter:Classes_-_Defining_methods
  42. Chapter:Classes_-_Defining_methods_-_Exercises
  43. Chapter:Classes_-_Static_members
  44. Chapter:Classes_-_Static_members_-_Exercises
  45. Chapter:Classes_-_final_members
  46. Chapter:Classes_-_final_members_-_Exercises
  47. Chapter:Classes_-_Using_packages
  48. Chapter:Classes_-_Using_packages_-_Exercises
  49. Chapter:Classes_-_Testing_your_classes
  50. Chapter:Classes_-_Testing_your_classes_-_Exercises
  51. Chapter:Classes_-_Using_your_classes
  52. Chapter:Classes_-_Using_your_classes_-_Exercises
  53. Chapter:Classes_-_API_source_code
  54. Chapter:Classes_-_API_source_code_-_Exercises
  55. Chapter:Classes_-_Other_keywords
  56. Chapter:Classes_-_Other_keywords_-_Exercises
  57. Chapter:Classes_-_Strings_are_immutable
  58. Chapter:Classes_-_Strings_are_immutable_-_Exercises
  59. Chapter:Inheritance_-_What_is_it
  60. Chapter:Inheritance_-_What_is_it_-_Exercises
  61. Chapter:Inheritance_-_Every_class_extends_Object
  62. Chapter:Inheritance_-_Every_class_extends_Object_-_Exercises
  63. Chapter:Inheritance_-_Overriding_methods_in_Object
  64. Chapter:Inheritance_-_Overriding_methods_in_Object_-_Exercises
  65. Chapter:Inheritance_-_Extending_your_own_classes
  66. Chapter:Inheritance_-_Extending_your_own_classes_-_Exercises
  67. Chapter:Inheritance_-_Examples_from_Swing
  68. Chapter:Inheritance_-_Examples_from_Swing_-_Exercises
  69. Chapter:Inheritance_-_Some_rules_and_syntax
  70. Chapter:Inheritance_-_Some_rules_and_syntax_-_Exercises
  71. Chapter:Inheritance_-_Problems_with_inheritance
  72. Chapter:Inheritance_-_Problems_with_inheritance_-_Exercises
  73. Chapter:Interfaces_-_Introduction
  74. Chapter:Interfaces_-_Introduction_-_Exercises
  75. Chapter:Interfaces_-_Implementing_an_interface
  76. Chapter:Interfaces_-_Implementing_an_interface_-_Exercises
  77. Chapter:Interfaces_-_Writing_an_interface
  78. Chapter:Interfaces_-_Writing_an_interface_-_Exercises
  79. Chapter:Interfaces_-_Program_against_an_interface
  80. Chapter:Interfaces_-_Program_against_an_interface_-_Exercises
  81. Chapter:Interfaces_-_Creating_an_anonymous_class
  82. Chapter:Interfaces_-_Creating_an_anonymous_class_-_Exercises
  83. Chapter:Interfaces_-_Rules_and_syntax
  84. Chapter:Interfaces_-_Rules_and_syntax_-_Exercises
  85. Chapter:Exceptions_-_What_is_it
  86. Chapter:Exceptions_-_What_is_it_-_Exercises
  87. Chapter:Exceptions_-_Two_main_types
  88. Chapter:Exceptions_-_Two_main_types_-_Exercises
  89. Chapter:Exceptions_-_Code_examples
  90. Chapter:Exceptions_-_Code_examples_-_Exercises
  91. Chapter:Exceptions_-_Creating_your_own
  92. Chapter:Exceptions_-_Creating_your_own_-_Exercises
  93. Chapter:Exceptions_-_Rules_and_syntax
  94. Chapter:Exceptions_-_Rules_and_syntax_-_Exercises
  95. Assignment - Guessing game
  96. Assignment - Address book

If you're attending a course with a specified assignment, as opposed to you being free to choose what ever app you want to do, we will use the following concepts:

  • Multitier architecture (for storage etc)
  • Network
  • Json/XML

so you either need to know them or study them.

Chapters

Android:Introduction

Android:Setting up your development environment

Android basics

Exercises on Android Basics

Resources

Exercises on Resources

Adding views

Exercises on Adding views

Android:ListView

Your own classes

Exercises_Your_own_classes

Android:Activity

Android:Thread

Android:Storage

Android:Network

Android:Test

--- TODO ---

Laying out components

  • LinearLayout

debug

  • debugger
  • log


UI tweaks

Web - Android

  • TODO?

Web - Java/backend

Useful components

Network

  • Networking in Android
  • Cacheing

Asset

TODO

  • add finish to Activity chapter