How to start learning android development (easy and fast)
How to start learning
(easy and fast)
BY BHATHIYA PERERA
What should you know ?
•Java knowledge is essential.
•With knowledge of concepts such as inheritance and other OOP
•Eclipse is the preferred IDE for most users (use EGit plugin with
eclipse to access a git repo, also supports GitHub).
What makes an Android app better ?
•The Better Design
oUse Action Bar or Navigation Drawer.
oUse Action Bar Icon Pack.
oConsistent feel, navigation similarities.
oDon’t place a back button, It’s not iOS. [Note : Action Bar up is different].
oMore info : http://developer.android.com/design/index.html
oUse Action Bar theme generator.
Designing for multiple screen sizes
•Use wrap_content, fill_parent, or dp/sp units.
•Avoid pixel values.
•Do not use AbsoluteLayout (it's deprecated) -> RelativeLayout is
•Different drawables for different screen densities
(ldpi < mdpi < hdpi < xhdpi < xxhdpi). Use a calculator.
•Consider both landscape and portrait orientations (Fragments).
•Source : http://developer.android.com/guide/practices/screens_support.html
Units (used for XML-layouts)
Unit Meaning Use
px A pixel Avoid
in An inch Avoid
mm Millimeter Avoid
pt A point Avoid
sp or sip Scale-independent pixels Only/Must for Fonts
dp or dip Density-independent pixels Everything Else
•Use modern features such as Fragments and ActionBar on older devices.
•More info : http://developer.android.com/tools/support-library/features.html
•Setup : http://developer.android.com/tools/support-library/setup.html
•Note : Eclipse can automatically set these libraries up when creating a new android project.
(Use Froyo as Minimum Required SDK)
Choosing the Development
•Android Studio – Based on IntelliJ IDEA (Under development)
•Eclipse + ADT Bundle : https://developer.android.com/sdk/index.html
•Tegra Android Development Pack : https://developer.nvidia.com/tegra-android-development-
o You can use this even if you are not developing for an NVIDIA product.
o There is a plugin for Visual Studio (to use with Java and CC++).
o Comes with SDK , NDK.
o Available for Windows/Linux/MacOS
Languages other than Java
•CC++ can be used to develop android applications if you are using the NDK.
o Use vs-android to use Visual Studio.
o Otherwise Eclipse CDT.
•C# can be used with the commercial Xamarin tool chain (IDE : Xamarin Studio or Visual Studio).
•PhoneGap or Cordova can be used to bundle a web-app (CSS3/HTML5/JS) as an android
o PhoneGap is the Adobe’s distribution of Apache Cordova.
•Rhomobile and Rhodes for Ruby. (Windows and MacOS only)
•Android Developer Training (recommended):
•Android Developer Tools :
•Other good tutorials: