Chatter
DUE Fri, 06/07, 11:59pm (Beijing time)
This assignment may be completed individually or in team of at most 2. You can partner differently for each lab.
Chatter
is a simple chat app that is cheaply inspired by Twitter. In this
first iteration, user can only post textual chatt
. In subsequent labs,
we will add, in turn, image and video, and audio.
Each subsequent lab will build upon this lab only, not on each other, though
you’re free (but not recommended) to make them cumulative.
The labs can all be completed mostly by cut-and-pasting code, though there will be spots here and there where you’ll be asked to fill in the blanks. It will help you spend less time on the quizzes and on your course project if you do understand what the code does. As a general rule of thumb, the less time you spend reading, the less you will get out of the course and the more time you’ll spend debugging. If you spend time to understand the code, the front end of lab1 should take about 1 to 1.5 hours to complete and the back end about another 1.5 to 2 hours. You are encouraged to complete this lab in three sittings, starting with the front end.
The purpose of this first lab is to familiarize you with the mobile development environment, the basics of mobile app programming, some Kotlin/Swift syntax and language features that may be new to you, and also to introduce you to the back-end server environment we’ll be using in all the labs.
Specifications
There are TWO pieces to this assignment. Chatter
consists of a
front-end mobile client and a back-end server.
For the front end, you can build either for Android in Kotlin or iOS in Swift.
IMPORTANT: unless you plan to learn to program both Android and iOS, you should do the labs in the same platform as that of your team course project.
You only need to build one front end, BUT you must build the back-end server also.
The back-end server is a few lines of python code with a couple lines of SQL thrown in. The majority of work in the back end is to set up a server which you will use to host the back end of all subsequent labs.
Once you have built and tested both your front end and back end, you MUST get your front end talking to your back end.
Objectives
Front end:
- Main objective is to familiarize you with the mobile development environment
- Set up IDE (Xcode or Android Studio)
- Observe the MVC software architecture
- How View is constructed from different UI elements
- How Controller is constructed:
- lifecycle
- launching a controller
- navigating between views
- actions associated with each UI element
- how to present a list of data items
- How to submit HTTP GET and POST asynchronously
- How to convert to/from JSON
- Start to learn Kotlin/Swift syntax and language features
Back end:
- Set up hosting, firewall, Nginx, Gunicorn, HTTPS
- Back-end server: PostgreSQL, Django
- set up PostgreSQL database and table
- observe how Django route URLs to pyhon functions
- observe the MVC software architecture used in Django
- how to interface with PostgreSQL in python
- how HTTP request/response and JSON work with python
Prepared for Ve441 by Sugih Jamin, Yibo Pi | Last updated: May 13, 2023 |