Hello, dear friend, you can consult us at any time if you have any questions, add WeChat: THEend8_
Event Finder App
This content is protected and may not be shared, uploaded, or distributed
0
Homework 9: Event Search Android App
1. Objectives
● Become familiar with Java, JSON, Android Lifecycle, and Android Studio for Android app
development.
● Build a good-looking Android app.
● Learn the essentials of Google’s Material design rules for designing Android apps
● Learn to use the Google Maps APIs and Android SDK.
● Get familiar with third party libraries like Picasso, Glide and Volley.
2. Background
2.1 Android Studio
Android Studio is the official Integrated Development Environment (IDE) for Android application
development, based on IntelliJ IDEA - a powerful Java IDE. On top of the capabilities you expect
from IntelliJ, Android Studio offers:
● Flexible Gradle - based build system.
● Build variants and multiple apk file generation.
● Code templates to help you build common app features.
● Rich layout editor with support for drag and drop theme editing.
● Lint tools to catch performance, usability, version compatibility, and other problems.
● ProGuard and app-signing capabilities.
● Built-in support for Google Cloud Platform, making it easy to integrate Google Cloud
Messaging and App Engine.
2.2. Android
Android is a mobile operating system initially developed by Android Inc., a firm purchased by
Google in 2005. Android is based upon a modified version of the Linux kernel. As of Nov 2018,
Android was the number 1 mobile OS, in unit sales, surpassing iOS, while iOS was still the most
profitable platform.
1
2.3 Amazon Web Services (AWS)
AWS is Amazon’s implementation of cloud computing. Included in AWS is Amazon Elastic
Compute Cloud (EC2), which delivers scalable, pay-as-you-go compute capacity in the cloud, and
AWS Elastic Beanstalk, an even easier way to quickly deploy and manage applications in the
AWS cloud. You simply upload your application, and Elastic Beanstalk automatically handles the
deployment details of capacity provisioning, load balancing, auto-scaling, and application health
monitoring. Elastic Beanstalk is built using familiar software stacks such as the Apache HTTP
Server, PHP, and Python, Passenger for Ruby, IIS for .NET, and Apache Tomcat for Java.
2.4 Google App Engine (GAE)
Google App Engine applications are easy to create, easy to maintain, and easy to scale as your
traffic and data storage needs change. With App Engine, there are no servers to maintain. You
simply upload your application and it’s ready to go. App Engine applications automatically scale
based on incoming traffic. Load balancing, micro services, authorization, SQL and NoSQL
databases, memcache, traffic splitting, logging, search, versioning, roll out and roll backs, and
security scanning are all supported natively and are highly customizable.
2.5 Microsoft Azure
The Azure cloud platform has more than 200 products and cloud services designed to help you
bring new solutions to life—to solve today’s challenges and create the future. Build, run, and
manage applications across multiple clouds, on-premises, and at the edge, with the tools and
frameworks of your choice.
2
3. Prerequisites
This homework requires the use of the following components:
● Download and install Android Studio. Technically, you may use any IDE other than
Android Studio such as Eclipse, but the latest SDKs may not be supported with Eclipse.
We will not be providing any help on problems arising due to your choice of alternate
IDEs.
● You must use the emulator, preferably Pixel 5 with API 31. Everything should just work
out of the box.
● If you are new to Android Development, hints are going to be your best friends!
4. High Level Design
This homework is a mobile app version of Homework 8. In this exercise, you will develop an
Android application, which allows users to search for the events, look at information about it,
save some as favorites and post on Facebook and Twitter about the event. You should reuse the
Node.js backend service you developed in Homework 8 and follow the same API call
requirements. These features among others are spread out over multiple activities and fragments.
There is no hard requirement on the number of activities/fragments used as long as the
behaviour of the app developed is similar to the reference implementation.
This homework makes use of the backend API’s that you developed as part of Assignment 8.
So, you can use the same Node.js backend as Homework #8. In case you need to change
something in the Node backend, make sure you do not break your Angular assignment (or
deploy a separate copy) as the grading for homework will not be finished at least until 1 week
later.
We suggest you use Java. Kotlin is allowed but will not be supported in piazza.
PS: This app has been designed and implemented in a Pixel 5 emulator by using SDK API 30. It
is highly recommended that you use the same virtual device and API to ensure consistency.
The demo will be on an emulator using Zoom recorded video, no personal devices allowed,
The recording guidelines are on D2L