Skip to content

OSKUDA/Android-Portfolio

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

20 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Portfolio

Hi, I am Oskar!
This repo holds android applications developed by me during the course of learning & discovering android development.

ToDoList

created an app to track list of tasks

Android Studio (java & firebase real-time database)


Specifications

  • 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

What I learned?

  • 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

ReadIt

created an app to search & read news

Android Studio (java & Guardian API)

Specifications

  • 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

What I learned?

  • 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

AudioRecorder

created an app to record & playback audio

Android Studio (java & sqlite3)

Specifications

  • 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

What I learned?

  • 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

About

Android apps

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages