Hi, I am Oskar!
This repo holds android applications developed by me during the course of learning & discovering android development.
Android Studio (java & firebase real-time database)
- App has multiple activity (Splash screen, username registration, dashboard, add task, edit task)
- Username screen is only shown for first time user
- Registered user's name is stored locally using sharedPreferences
- Crosschecks are made with database such that only unique username will be registered
- Dashboard activity implements recycler view for task list and a button to add task
- Dashboard activity refreshes task list on every changes made on database
- Add new task activity collects required details and post data to database
- Edit task activity retrieves current task and updates any changes made to database
- Delete function completely remove selected task from database
- Every input is validated before posting it to real-time database
- store and retrieve data on local memory using SharedPreferences
- validate input from user
- work with real-time firebase database
- enhance UI/UX of app
- work with material.io library
Android Studio (java & Guardian API)
- App is integrated with Guardian API
- API feeds the app with news using custom query
- Uses httpUrlConnection to request search query and fetch result
- Search query are stored locally using sharedPreferences
- Uses Picasso library for caching and downloading image files
- On startUp last known query is loaded up
- Received data is on Json format
- Uses JSON.org and Jsoup to parse json and html data
- RecyclerItemClickListener class is used to manage clicks with GestureDetector
- Displays error message if no news article was found
- User input is validated before processing it
- Use RecyclerView with GestureDetector to intercept user inputs and act accordingly
- Integrating Guardian API and learn about API architecture overall
- Using AsyncTask multi-threading for downloading data over the internet
- Parsing and Validating data from API
- Building custom query to request the API
- Integrate exception handling during downloads and parsing of data
- Generate and work on custom theme including day/night mode
- Design custom layout for txtView, editText and ImageView widgets
- Learned about backward app compatibility and how to deal with older versions
Android Studio (java & sqlite3)
- App Database is implemented using sqlite3
- It performs all the CRUD (Create, Read, Update, Delete) operations
- Uses Cursor and SQLiteOpenHelper class to implement CRUD
- Uses tab & viewPager2 for swipable and tabbed UI
- MediaRecorder and MediaPlayer is used for record and playback of audio
- Database schema is designed to track audio files, store relevant meta-data, and provide data for recycler view
- Audio files are stored in '.3gp' format
- Considers orientation change to preserve app lifecycle state
- Implement tab & viewPager2 UI
- Work with fragments and its lifecycle
- Design and implement custom Dialog fragments
- Store, handle, and retrieve audio files
- Preserve state on Orientation change and handle activity-fragment lifecycle
- 5 minutes of reading documentation can save you 6 hours of debugging