The idea behind this application came from personal experiences where I had difficulty explaining my approach to an technical interview type problem to my friends. This situation would come up when my friends and I would conduct mock interviews on one another. This is trivial when conducting a mock interview in person, but more complex when conducting it remotely.
The purpose of this mobile application is to allow students and future software engineers to study and prepare for technical interview remotely with their peers. This clears the obstacle of having to be in the same physical location to practice for technical interviews. The purpose of this mobile application can be expanded to numerous use cases from remote teaching to working in a collaborative setting.
- Communication via network. This could be accomplished over Bluetooth/Wifi/4G. The core idea here is that you send and receive data and, thus, implement long running operations.
- Persistence. Your app needs to use some form of persistent storage (Some examples: SQLite, File, SharedPreferences, saveInstanceState callbacks).
- Background operations. You must use background threads (AsyncTask, Thread or any other variants) to execute long running tasks.
- Service. Your app should have a Service that will continue running in the background after you exit the activity.
- Retained fragment. As your project app is going to contain long running operations, you must use retained fragments to retain references to those long running operations.
- BroadcastReceivers. You will need to use at least one BroadcastReceiver to pass/receive information (Example: ON_BOOT to launch your background service).
- Fragments. Use at least two fragments to display UI and manage them from within the containing activity.
- Location. You can use either LocationManager or Google Play Services to retrieve location.
- Camera/multimedia/audio. You can capture/play/edit photo/video/audio.