Getting Started: Android Resources

Getting started with Android?

We have compiled several links with comments for anyone who is just getting started with Android application development. Feel free to rate or share your favorite links, reference materials, and developer communities, or ask us any questions at mad.lab@utoronto.ca!

Android Basics

Installation

If you are new to Android application development, and do not have all necessary items installed, the following sites are useful guides for setup:

The official Android Developer website by Google. It describes how to install the Android Software Development Kit (SDK), which is necessary to build, test, and debug Android applications.  http://developer.android.com/sdk/index.html

The recommended Integrated Development Environment (IDE) for Android App Development is Eclipse Standard, and it can be found at http://www.eclipse.org/downloads/ .

The alternative IDE for Android Development is Android Studio, and it can be found at http://developer.android.com/sdk/installing/studio.html

 

Building “Hello World”

How to build your first Android app. The official Android Developer website contains lesson plans that cover how to create an Android project, run your app on either emulator or real device, and build a very simple user interface. http://developer.android.com/training/basics/firstapp/creating-project.html

 

Android Beginners

Android:

When building Android applications in Eclipse with the Android Developer Tools (ADT) plugin (or Android Studio), you can either build a user interface (UI) and/or layout in the Android GUI setting environment, or programmatically. The following tutorials are recommended for beginners in Android or GUI development:

Android fundamentals, UI controls, and layouts. In addition, this site also covers commonly asked questions such as: how to access URLs, how to make a phone call, and how to set a default activity. http://www.mkyong.com/tutorials/android-tutorial/

If you are interested in learning only the fundamentals and components required to build basic Android applications, go to this website: http://techblogon.com/android-development-tutorial-for-beginners/#

The Android Development Tutorial and Training website by Vogella is also very useful. Often this website provides in-depth descriptions with source code for tutorial and training purposes. This site covers the basics such as Activity, Intent, and Application lifecycle and also advanced topics such as services, location, Google Maps API, and sensors. The information here may be too much for beginners, but it covers many technologies that you may be interested in eventually using in your Android application. http://www.vogella.com/tutorials/Android/article.html

A website that covers essential topics for Android beginners. It also covers UI layouts, controls, styles, themes, and event handlings. For beginners who are interested in learning how to integrate your application with SNS such as Facebook and LinkedIn, this is definitely a good website to refer to: http://www.tutorialspoint.com/android/

Android programming tutorial series. This website would be useful for those who have some experience in Java or other object oriented programming languages prior to Android development. Each section includes exercises and solutions. http://www.coreservlets.com/android-tutorial/

Java:

Android applications are primarily written in the Java language, a high-level programming language originally developed by Sun Microsystems. Java runs on a variety of platforms including various versions of Windows, Mac OS, and Linux/Unix.

To review or develop programming skills in Java, http://www.tutorialspoint.com/java/ is one of the most well known tutorial websites. This site offer information at different levels: from basic components such as syntax, data structure, strings, methods, and files, to object-oriented and advanced topics such as encapsulation, inheritance, polymorphism, abstraction, serialization, and so on! This website will be helpful for those who do not have any experience in programming Java.

A website intended for aspiring developers who have no experience in Java or any other OOPs. Essential topics such as variables, statements, access modifiers, class and objects, interfaces, overloading, overriding, and much more are covered. This website also includes code snippets.  http://javabeginnerstutorial.com/core-java/

The official Java website by Oracle. As an official Java website, it contains a massive amount of Java materials from basic object-oriented programming concepts, interfaces and inheritance, to much more specialized lessons such as custom networking, sound, graphics, and security. This website will be helpful for those who already have knowledge in Java or do not have programming experience in Java, but in other object-oriented languages. http://docs.oracle.com/javase/tutorial/java/index.html

 

XML

XML stands for eXtensible Markup Language, and it is a text-based data format that is widely used for the representation of arbitrary data structures.

An Android application’s layout and user interface (UI) is defined in XML, and you can visit the following links to learn more about XML:

The official Android website for XML formats and other basics for Android: http://developer.android.com/guide/topics/ui/declaring-layout.html

W3schools’ website is one of the most popular websites for learning frontend languages such as HTML, CSS, JavaScript, and XML. The site covers a variety of topics including syntax, tags, attributes, encoding, and parser. The site also has examples and quizzes for each topic. http://www.w3schools.com/xml/default.asp

Xmlmaster.org is well organized and contains rich information on XML. Each topic includes overview, examples, and review questions. http://www.xmlmaster.org/en/article/d01/

Quackit.com is great tutorial website for learning web technologies including XML. The site covers a few varieties of XML documents, syntax, elements, namespace, and much more. http://www.quackit.com/xml/tutorial/

Other Resources – University of Toronto

As a student at University of Toronto, you should take advantage of our resources available in various places:

UofT Library

A number of catalogue entries on Android development in the form of books and/or digital resources can be found in the basic search linked here.

UofT Courses

UofT offers courses that are relevant to Android application development and the core programming languages for Android (e.g. Java, XML).

You can find the right courses offered at University of Toronto using the course finder: http://coursefinder.utoronto.ca

See also:

Department of Computer Science: http://www.cdf.toronto.edu/cs_courses/current_course_web_pages.html

Department of Electrical and Computer Engineering: http://www.apsc.utoronto.ca/Calendars/2013%2D2014/Course_Descriptions.html#Course17

Department of Engineering Science: http://www.apsc.utoronto.ca/Calendars/2013%2D2014/Course_Descriptions.html#Course18

For more information on courses or enrolment, please contact an advisor or administrator at your Faculty or Department.

UofT Communities/Clubs

UofT has many excellent communities and clubs for Android development and mobile application development. The following is a basic list of communities and clubs for anyone interested in learning and developing mobile applications:

Hacker Academy

Hacker Academy at UofT is a community of students who are passionate about technology. For more information, refer to:

http://www.hackeracademy.org

UofT Developer

UofT Developer club is a project-oriented club that aims to develop mobile applications on Android, iOS, and Facebook platforms. For more information, refer to:

http://developers.sa.utoronto.ca/about/

 

Further Reference

– Official Android Developers website. Covers API guides and design. http://developer.android.com/guide/components/index.html

– Androidituts.com provides some interesting examples and advanced topics such as customizing UI and adapters, text to speech conversion, auto-complete text view, etc. http://androidituts.com

– Edumobile.org covers lots of advanced and popular topics such as GPS, tracking smartphone, file explorer, voice recognition, notification, and much more! Visit the site: http://www.edumobile.org/android/

– Codeproject.com contains many articles on Android application development. The website covers several interesting topics such as building Android apps in C/C++, shared preferences, communication with .NET application, etc. Visit the site: http://www.codeproject.com/KB/android/

– xdadevelopers.com is a large website intended for sharing interest in technology and application development. The website covers many tweaks such as how to customize an action bar, layout, theme, and other UI components in your smartphone. Visit the site: http://www.xda-developers.com/android/free-android-development-tutorials-on-linux-com/

– A list of videos for Android application development. It covers many topics at different level of difficulty, so it may be difficult for some beginners to learn. However, this website covers some interesting topics such as Google Maps API, accelerometer, OpenGL, 3D rotation, and much more. http://thenewboston.org/list.php?cat=6