CryptoX is a comprehensive mobile application designed to provide users with real-time cryptocurrency data, including live price updates, a detailed glossary of cryptocurrency terms, and the latest news in the crypto world.
-
Real-Time Price Tracking: Get up-to-the-minute price updates for popular cryptocurrencies like Bitcoin, Ethereum, and various altcoins. CryptoX ensures that you have access to accurate and current market data.
-
Cryptocurrency Terminology Glossary: Explore an extensive glossary that explains essential cryptocurrency terms. Whether you're a beginner or an experienced investor, CryptoX helps you understand the complex jargon and concepts of the crypto world.
-
News Aggregation: Stay informed with the latest news from reputable sources. CryptoX aggregates relevant news, providing insights into market trends, technological advancements, regulatory changes, and significant events in blockchain and digital assets.
SignIn Screen | Sign Up Screen | Splash Screen | Coinlist Screen | Coin Detail Screen |
---|---|---|---|---|
Favorite Screen | Crypto Terms Screen | News Screen | News Detail Screen | Settings Screen |
---|---|---|---|---|
-
Kotlin, Coroutines and LiveData
-
Clean Architecture - The application was written with Clean Architecture in mind.
-
Navigation Component - Single activity multiple fragments approach
-
- LiveData - Observable lists.
- Lifecycle - Dispose of observing data when lifecycle state changes.
- Fragment-ktx - A set of Kotlin extensions that helps with fragment lifecycle.
- View Binding - Allows you to more easily write code that interacts with views
- ViewModel - UI related data holder, lifecycle aware.
- Swiperefreshlayout - SwipeRefreshLayout is an Android component that allows users to refresh content by pulling down on the screen.
-
Hilt is a dependency injection library for Android
-
Room persistence library provides an abstraction layer over SQLite to allow fluent database access while harnessing the full power of SQLite.
-
Retrofit A type-safe HTTP client for Android
-
Glide - Glide is a fast and efficient open source media management and image loading framework for Android
-
SharedPreferences Store private primitive data in key-value pairs. Standard Android library with no specific version (comes with the Android SDK).
In this project, MVVM architecture is employed to separate concerns and improve maintainability. The architecture consists of:
- Model: Handles data operations and business logic, interacting with data sources such as APIs or databases.
- View: Displays the data and handles user interactions. It observes the ViewModel for updates and reflects changes in the UI.
- ViewModel: Acts as an intermediary between the Model and View. It retrieves data from the Model, processes it, and provides it to the View in a format suitable for display.
Clean Architecture is applied to ensure a well-structured and scalable codebase. It separates the project into distinct layers:
-
Presentation(UI) Layer: Contains the UI and ViewModels, responsible for presenting data to the user and handling user input.
-
Domain Layer: Encapsulates business logic and use cases. It defines the application's core functionality and communicates with the data layer.
-
Data Layer: Manages data retrieval and storage. It handles API calls, database interactions, and data mapping.
- You will need to provide a private key to retrieve data from the NEWS API.
- Generate a new key from here.
API_KEY = YOUR_API_KEY
Designed and developed by 2024 recepbrk (Recep Güzel)
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.