Crypto Ranking App

CryRank is a cryptocurrency information app that provides realtime data on prices, rankings, and market capitalization. This application has an intuitive design that makes it easier for users to analyze the market. The data from this application is realtime by utilizing the API from coinranking. In this application I implemented several tech stacks such as COIL3, MVVM, Dependencie injections, Dark Mode, Custom View, Loading Shimmer and this application uses the Jetpack Compose framework.This application is not yet available in the playstore but you can clone this project. ...

January 13, 2025

Note.me

Note.me is the first android application that I built using jetpack compose. I made this application to explore jetpack compose. There are several libraries that I applied to this application such as ROOM for local databases, MVVM for architectures, Dagger Hilt for dependency injections, Flow for asynchronous data management and Shared Preferences to store application settings data. The features in this application are quite basic such as Add Note, Update Note, Archive Note, Delete Note, and dark mode is available. This application is not yet available in the playstore but you can clone this project. ...

January 1, 2025

Transshipment

Coal Shipper Transshipment is an application to record coal transshipment transaction activities on the Ratu Damai Mother Vessel. The process of transferring coal cargo is usually carried out between the mother ship and barges that are close to each other. The main feature of this application is to calculate how long the process of transferring coal cargo on the Ratu Damai mother vessel and there are several additional features such as approval of ship arrival schedules, ship departures, fuel management, and monitoring wheeloaders. ...

November 18, 2024

Sewasam Management

Sewasam Management is an application specifically designed to help rental businesses, especially in managing various aspects of their business. This application is here to overcome various challenges that are often faced by rental businesses, such as: Complicated financial records: Sewasam Management allows you to record income and expenses easily and quickly. This feature is very useful for keeping business finances organized. Increase efficiency: The various features provided by Sewasam Management are designed to make the rental process more efficient, from inventory management to report generation. ...

September 1, 2024

Gocement

GoCement is a building materials marketplace app in Indonesia. With this application, users do not need to come to a building material store. Users simply select the products they need and make payment. After that the product will be sent using a courier to the project location. Here are some of the features in this application: Product and building store search based on project location radius. Select variants automatically which aims to find the lowest price and speed up the transaction process. Ease of choosing instant delivery. An in-app tutorial that aims to make it easier for users to use the application. You can download this application via Google Playstore. ...

December 31, 2023

Custom Calendar Library

I created a Custom Calendar Library because often the design of CalendarView from Google is less attractive and does not fit the design pattern of the application I will create. In this Library you can set the appearance of the Custom Calendar Library starting from the locale, color, and shape of the button and is only available on the Android platform. Here are the steps to implement this library: Step one add it in your root build.gradle at the end of repositories 1 2 3 4 5 6 7 dependencyResolutionManagement { repositoriesMode.set(RepositoriesMode.FAIL_ON_PROJECT_REPOS) repositories { mavenCentral() maven { url = uri("https://www.jitpack.io" ) } } } Step two Add the dependency 1 2 3 dependencies { implementation("com.github.JOOctp:Custom-Calendar:1.0.3") } Set your locale using xml or programmatically 1 2 3 4 5 <com.jop.calendar.CalendarView android:id="@+id/calendar" android:layout_width="match_parent" android:layout_height="wrap_content" app:locale="id-ID"/> 1 2 3 binding.apply { calendar.setLocale(Locale("id", "ID")) } You can customize the appearance of the buttons, from the background, stroke, icon color, and button shape using xml or programmatically. 1 2 3 4 5 6 7 8 9 <com.jop.calendar.CalendarView android:id="@+id/calendar" android:layout_width="match_parent" android:layout_height="wrap_content" app:locale="id-ID" app:buttonStrokeColor="@color/green" app:buttonBackgroundColor="@color/greenAccent" app:buttonIconColor="@color/green" app:isCircleButton="false"/> 1 2 3 4 5 6 binding.apply { calendar.setButtonStrokeColor(ColorStateList.valueOf(resources.getColor(R.color.green))) calendar.setButtonBackgroundColor(ColorStateList.valueOf(resources.getColor(R.color.greenAccent))) calendar.setButtonIconColor(ColorStateList.valueOf(resources.getColor(R.color.green))) calendar.setIsCircleButton(false) } You can set the weekend color using xml or programmatically. 1 2 3 4 5 6 <com.jop.calendar.CalendarView android:id="@+id/calendar" android:layout_width="match_parent" android:layout_height="wrap_content" app:locale="id-ID" app:textWeekEndColor="@color/grey"/> Callback function when clicked on selected date 1 2 3 4 5 6 7 binding.apply { calendar.setCalenderViewListener(object : CalendarView.CalendarViewListener{ override fun onSelectedDate(date: Date) { TODO("Not yet implemented") } }) }

December 25, 2023