Part 1: Preliminaries
Part 2: Android Project And Application Structure
Part 3: In Progress
Part 4: In Progress
Part 4: In Progress
AOC is an open source curriculum intended to provide Android Teachers and Students alike with a high quality learning resource for the platform.
Currently, this project has to primary goals:
- Create a concise but comprehensive curriculum which can be used by anyone to learn and teach Android Application Development.
- Translate this curriculum in to as many languages as possible, to support individuals who do not have such resources available in their native languages.
As for secondary goals:
- Avoid biases for particular languages, approaches, and APIs when possible; while still giving students/teachers relevant details in order to make a well-reasoned decision.
- Avoid explaining new concepts and technical terms, by using other concepts and technical terms that beginners are not likely to be familiar worth.
- Prioritize simple and clear explanations, backed up with simple and clear code examples.
Although avoiding biased explanations is a goal, you can be certain that contributors have their own preferences concerning topics such as Java versus Kotlin, or preferred API selections. Feel free to contact them for their opinions and knowledge on these topics.
There are currently three primary modules for this project:
- curriculum contains the curriculum material
- javaexamples contains Android/Java examples discussed in the curriculum
- kotlinexamples contains Android/Kotlin examples discussed in the curriculum
As mentioned before, it is unreasonable to make absolute statements about which language is the best choice for a particular individual. The short answer is that both languages will provide you with opportunities to improve your skill set as a developer, get hired, and to build great applications. If you really intend on being a developer for any significant length of time, then you don't need to worry so much about which language you pick; go with what personally interests you (interest is tied to motivation and learning capacity).
With that being said, there is one very pragmatic concern for those of you who are looking to get hired as quickly as possible: What do the companies you would like to work for use? This information can often be gathered by looking at job postings for those companies, or even just politely asking via email what technologies and languages they prefer.
Yes; that's kind of the whole point.
Project Administrator Note: If you create free educational content based on this guide, then I would be happy to feature this work for FREE via my Social Media Networks. If you are found to be repackaging this FREE educational content in order to sell it for your personal gain, understand that your actions will be met with the kind of response that is deserving of an immoral and selfish individual.
For more specific information of formatting, style, and content, please review the Contribution Guide
While the educational content of this project will be monitored closely by core contributors, this project is in need of translators. If you are able to demonstrate basic competency in the subject matter, and you are capable of rendering this content in your native language, please do consider contributing in this way. Upon acceptance of your translation of at least one lesson full, you will be eligible to be featured in the contributors section of this repository. Contributors may submit a short personal bio, provide one link external link to a company/personal website, and provide as many links to approved Social Media accounts as desired.
Project Administrator Note: I would be happy to provide a personal reference for anyone who contributes successfully. References can be provided via email or Linkedin.
Before being considered as a contributor for the primary lesson content, you will be expected to possess:
- At least one of: publicly viewable repositories which demonstrate your knowledge of the Android Platform and your respective language(s); and or published applications where you can explain and prove your contributions.
- An ability to explain abstract and technical topics in a manner which does not require extensive jargon or nested technical definitions (or at least the foresight to point students to where they can find such details).
Those who contribute a number of approved fixes for typing errors may also be eligible to be featured in the contributors section. It will take more than spotting a typo or two, but not much more than that.
Current Contributors are listed on the Contributors page.