This portfolio of Apps enables me to use the Android development platform best-practices, Android Studio, Android Jetpack Libraries and the latest trending technologies in this space to build applications for the world’s most-used mobile platform.
1. SpaceBinge
SpaceBinge is a video streaming app, showcasing latest and upcoming missions and activities as NASA. These videos on space are exclusively created by NASA and available for general public viewership.
- Android Architecture Components
- ViewModel
- LiveData
- Repository
- Room Database
- Video Streaming / Player
- Exoplayer
- Retrofit ( A type-safe HTTP client )
- JSON Parsing
- Dynamic Image Loading
- Picasso ( A powerful image downloading and caching library )
- Glide
- Material Design
- RecyclerView with ViewHolder
- CardView
- Card Stack View ( News Section )
- Google Firebase
- Firebase Auth
- Firebase analytics
- Video Downloading library
- PRdownloader
- Stetho ( A debugging library for Android applications )
- Android Homescreen Widget
- Stream unlimited space videos and documentaries created by NASA
- Discover hours of infotainment content, with new videos being added regularly
- Create your personal ‘Watchlist’ list and easily access your collection
- Extensive search inside vast collection of videos of NASA
- Watch full documentaries and short videos for free
- Offline viewing of the videos, download these space videos effortlessly on your device
- User Profile gets created for personalisation on favorite space videos
2. Baking App
Baking App app will allow a user to select a recipe and see video-guided steps for how to complete it. It requests the data from Internet in form of JSON. The JSON file contains the recipes' instructions, ingredients, videos and images you will need to complete this project. Don’t assume that all steps of the recipe have a video. Some may have a video, an image, or no visual media at all. This app makes use of fragments very efficiently on the tablet as well as phone screen. The fragments functionalities are being re-used in both screens.
- Fragments
- Exoplayer
- Widgets
- ButterKnife
- Retrofit ( A type-safe HTTP client )
- Scrolling Activity
- Material Design
- JSON Parsing
- RecyclerView with ViewHolder
- Cardview
- Espresso
- Use MediaPlayer/Exoplayer to display videos.
- Handle error cases in Android.
- Add a widget to your app experience.
- Leverage a third-party library in your app.
- Use Fragments to create a responsive design that works on phones and tablets.
Joke Telling App App retrieves jokes from Google Cloud Endpoints module and displays them via an Activity from the Android Library.
- Multi-Module Application
- Google Ads
- Java Libraries
- Android Libraries
- Google app engine
- Android Flavors (Paid/Free)
- A Java library for supplying jokes
- An Android library with an activity that displays jokes passed to it as intent extras.
- A Google Cloud Endpoints module that supplies jokes from the Java library. Project loads jokes from GCE module via an async task.
- Connected tests to verify that the async task is indeed loading jokes.
- Paid/free flavors. The paid flavor has no ads, and no unnecessary dependencies.
Popular Movies, Stage 2 app add additional functionality to the app built in Stage 1
- Android Architecture Components
- ViewModel
- LiveData
- Repository
- Room Database
- Retrofit ( A type-safe HTTP client )
- Picasso ( A powerful image downloading and caching library )
- Stetho ( A debugging library for Android applications )
- Scrolling Activity
- Material Design
- JSON Parsing
- RecyclerView with ViewHolder
- Allow users to view and play trailers (either in the youtube app or a web browser).
- Allow users to read reviews of a selected movie.
- Allow users to mark a movie as a favorite in the details view by tapping a button (star).
- Make use of Android Architecture Components (Room, LiveData, ViewModel and Lifecycle) to create a robust an efficient application.
- Create a database using Room to store the names and ids of the user's favorite movies (and optionally, the rest of the information needed to display their favorites collection while offline).
- Modify the existing sorting criteria for the main view to include an additional pivot to show their favorites collection.
Popular Movies, Stage 1 app helps users discover popular and recent movies. It requests the data from Internet on MoviesDB API and this ensures data is latest and updated.
- Picasso
- AsyncTask Loader
- JSON Parsing
- RecyclerView with ViewHolder
- Grid Layout
- Present the user with a grid arrangement of movie posters upon launch.
- Allow your user to change sort order via a setting:
- The sort order can be by most popular or by highest-rated
- Allow the user to tap on a movie poster and transition to a details screen with additional information.
- Fetch data from the Internet with theMovieDB API.
- Use adapters and custom list layouts to populate list views.
- Incorporate libraries to simplify the amount of code you need to write
XYZ Reader App is a redesign of app to follow the Material Design guidelines and translate a set of static design mocks to a living and breathing app.
- Understand the fundamentals of Android design.
- Apply Material Design guidelines to a mobile application.
- Separate an interface into surfaces.
- Effectively use transitions and motion.
- Using Adaptive design for different screen sizes
- Picasso Library for Images
Sandwich Club app to show the details of each sandwich once it is selected.
Building a layout and populating its fields from data received as JSON is a common task for Android Developers. Although JSON parsing is usually done using libraries, writing the JSON parsing for this project will help you to better understand how it is processed.
- JSON parsing to a model object
- Design an activity layout
- Populate all fields in the layout accordingly
Copyright 2020 Abhijeet Singh Chouhan
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.