UCL Computer Science - ENGS102P

Coding Curriculum



Project Title: My Safe Android Tutorial

Introduction

Target Age Range

16 – 18 (A Levels)

Theme of the Project

STEM (Science, Technology, Engineering and Mathematics)

What you need to know prior to this course?

As it is Android platform’s native language, Java knowledge is essential for this course. Any other programming knowledge especially in an object-oriented language will be useful. Native or hybrid any mobile development experience will be very helpful but not required. If you are an iOS user, you might find it useful to get yourself familiar with the nature of Android apps as navigation and GUI (Graphical User Interface) design in Android apps are quite different from iOS apps. This will help you when developing the My Safe app in this course. If you are an Android user, this means you are already familiar with the feel of Android apps and you do not need to do anything extra.

To learn Java the following tutorials are recommended prior to taking this course but any other Java tutorial for beginners course of your choice can be followed too (all courses are completely free except for Codecademy’s Learn Java course which is partially free and all courses have been previously taken and recommended by the author of this course):

The link below will take you to Udacity’s website’s Android apps section where you can find more free Android courses that can be followed after you took this course. I studied almost all the courses in these tutorials on my own and they made me a more complete and more advanced Android developer. All these courses, except for one, are prepared and supported by Google and Udacity. Along with Lynda.com Android courses, these courses are the most professional and comprehensive Android courses that you can find on the Internet. I have personally found the courses on Udacity more helpful and educating than Lynda.com courses. Plus, to watch Lynda.com courses you need a paid membership but they are also great resources to learn native Android app development.

Necessary tools:

  • A computer with Mac OS, Linux or Windows and with Internet connection (other operating systems may be used but it is not guaranteed that this course can be successfully followed).

  • Android Studio: It is the official IDE (Integrated Development Environment) of Android platform and can be downloaded from Android Studio’s official website (preferably the latest version).

  • Java: It is currently one of the most popular programming languages and widely used in mobile, web and desktop software development. Java SDK (Standard Development Kit) must be on your computer to run Java code and programmes. Java SDK can be downloaded from Oracle’s official website (preferably the latest stable version).

  • An Android device with minimum Ice Cream Sandwich 4.0.3 operating system which is going to be the minimum version that our app is going to be working on (not compulsory but it is useful and exciting to run your app on a physical device rather than on an emulator – Android emulator is a virtual Android device that can be installed and run on a computer. Android Studio offers a wide range of devices with different operating system versions. Operating system versions are always referred as API levels in Android. For example, the latest Android version is, as of the time of writing, Android Nougat 7.1 which is API level 25).

Additional Information

The app that is going to be built in this project can be found at this GitHub repository .

If you do not know how to use Git and/or GitHub I suggest you to study the following tutorial but this is not essential for this course. However, you might find version control with Git and GitHub (or any other website that helps you with version control) useful when developing your app. It is also an essential skill for programmers who work in industry.

Codecademy’s Git Course

About the Author

I am a second-year undergraduate Computer Science student at UCL. I am interested in many areas of software engineering but the one that attract me the most is mobile (iOS and Android) application development. The reasons for my interest in mobile app development are listed in the next section. I spend a good amount of time outside the school on building mobile apps and improving my knowledge in mobile app development further. As of the time of writing I have 3 Android apps on Google Play Store and 1 iOS app on Apple App Store.

Objective and Description

This project aims to teach native Android mobile app programming through building a simple app step by step so that students of this course can get into exciting world of mobile app development and improve their programming skills.

The app we are building is going to take photos and store them separately from the phone's gallery. So the photos are going to be accessible only through the app. The app is going to ask for user to set a password when the user opens the app for the first time. After that, the app is going to ask the user to set a password to access the content of the app.

Native mobile app development is quite easy to start by downloading free IDEs for each platform and it is very easy to distribute apps through app stores. A computer with an Internet connection is enough to start building mobile apps. Building mobile apps is a fun and educating way to learn programming and it is also what many software engineers do for living. Mobile app developer is a very employable job in the UK and in most of the European and North America countries.

If you are planning to study a computer science or a relevant degree, what you will learn in this course will certainly be helpful with your studies. If you keep improving yourself in mobile app development you can even work as a mobile app developer after or even before you graduate from university. You can easily code your own apps too. Even if you are not going to study a computer science or a relevant degree in the future, learning programming is still an important qualification in terms of learning how to find creative solutions to problems and how to take different approaches to solve a problem.

This course focuses on solely Android application development rather than iOS development. One of the main reasons for that is Java which is the native language of Android platform is much more common in non-mobile software projects such as web development and desktop application development than Swift and Objective-C which are native languages of iOS platform.

Another major reason is that Android Studio which is the official IDE of Android platform can be run on Mac OS, Linux and Windows whereas, Xcode which is the official IDE of iOS platform can only be run on Mac OS. The registration fee for Google Play Store is 25$, as of the time of writing, for lifetime and for Apple App Store it costs 99$ per year, as of the time of writing. If you want to distribute your own app at the end of the course which makes Android a more reasonable choice for this course.

I hope you will find the course useful and enjoy it. I appreciate any feedback to improve this course. I am also happy to answer your questions. So please send any feedback or questions to my email address: beratbarancevik@gmail.com .

Tasks Completed

  • A complete course has been created.
  • The course leads to a final app therefore, it is self-sufficient.
  • Various challenges can be found in the lectures.
  • Screen recording was used to better explain the coding of the app.
  • Final code is available on GitHub.
  • A nice-looking website was created with all information specified in the project guidelines.
  • All lectures were made available on YouTube.
  • All lectures has its description indicating what that lecture is going to teach.
  • The final app has its deficiencies. Hence, there is plenty of room for improvement that can be made using the knowledge provided in the lectures.

Outstanding Tasks

  • The whole project which is created through lecture series is a big challenge on its own.
  • The aim and the importance of the course as well as the importance of programming and mobile development were presented in detail.
  • The lecturer explained as much as he could to answer all possible questions that the students might have.
  • The lecturer types the code along with explaining it which makes it very easy for students to understand the logic behind every code.
  • All lectures can be watched from the project's website.
  • The final app is an engaging and useful app which will help students to motivate and focus on the project.

Teaching Material