Skip to content

nowahgit/HaloWeather

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

31 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

halo_weather_logo (1)

Kotlin Compose Min SDK License


Aplikasi cuaca Android modern dengan Jetpack Compose

HaloWeather adalah aplikasi cuaca Android native yang dirancang dengan pendekatan modern menggunakan Jetpack Compose. Aplikasi ini menyediakan informasi cuaca akurat dan real-time untuk lokasi manapun di dunia dengan antarmuka yang intuitif dan responsif.

Dikembangkan menggunakan arsitektur MVVM dan best practices Android development, HaloWeather menghadirkan pengalaman pengguna yang smooth dengan performa optimal.


Fitur Utama

Informasi Cuaca Lengkap

  • Suhu real-time dengan deskripsi kondisi cuaca
  • Prakiraan cuaca per jam dan harian
  • Icon cuaca dinamis yang menyesuaikan kondisi

Data Detail

  • Kecepatan Angin - Monitoring kecepatan dan arah angin
  • Kelembapan - Persentase kelembapan udara
  • Tekanan Udara - Data tekanan atmosfer
  • Visibility - Jarak pandang dalam kilometer
  • UV Index - Indeks radiasi ultraviolet
  • Temperatur - Temperatur yang dirasakan

Antarmuka Modern

  • Implementasi Material 3
  • Smooth animations dan transitions
  • Adaptive layout untuk berbagai ukuran layar
  • Kompatibel UI Dark mode & Light mode

Pencarian Lokasi

  • Cari cuaca berdasarkan nama kota
  • Support pencarian global
  • Support suggestion pencarian

Tech Stack

Core

Kotlin 100% Kotlin codebase
Jetpack Compose Declarative UI framework
Material Design 3 Latest design system from Google
Kotlin Coroutines & Flow Asynchronous programming

Architecture & Libraries

MVVM Architecture Clean separation of concerns
ViewModel Lifecycle-aware state management
StateFlow Reactive state holder
Retrofit Type-safe HTTP client
OkHttp HTTP & HTTP/2 client
Gson JSON serialization/deserialization
Coil Image loading library for Compose
Navigation Compose In-app navigation

API


Requirements

Android Studio Hedgehog (2023.1.1) atau lebih baru
Java Development Kit JDK 17
Gradle 8.0+
Minimum SDK 24 (Android 7.0 Nougat)
Target SDK 36 (Android 15)
Compile SDK 36

Memulai Projek

1. Clone Repository

git clone https://github.com/username/haloweather.git
cd haloweather

2. API Key Setup

Dapatkan API key gratis dari WeatherAPI.com:

  1. Kunjungi weatherapi.com
  2. Sign up untuk akun gratis
  3. Copy API key dari dashboard

Tambahkan API key ke file local.properties:

# local.properties
WEATHER_API_KEY=your_api_key_here

Note: File local.properties tidak di-commit ke git untuk keamanan. Pastikan API key Anda tetap private.

3. Build Configuration

Buka file build.gradle.kts dan pastikan konfigurasi sudah sesuai:

    namespace = "com.elnoah.haloweather"
    compileSdk = 36

    defaultConfig {
        applicationId = "com.elnoah.haloweather"
        minSdk = 28
        targetSdk = 36
        versionCode = 1
        versionName = "1.0"

        testInstrumentationRunner = "androidx.test.runner.AndroidJUnitRunner"
    }

4. Sync & Run

  1. Buka project di Android Studio
  2. Sync Gradle files
  3. Build dan run aplikasi di emulator atau device

Struktur Project

haloweather/
│
├── app/
│   ├── src/main/java/com/elnoah/haloweather/
│   │   ├── data/
│   │   │   ├── api/
│   │   │   ├── model/
│   │   │   └── repository/
│   │   │
│   │   ├── ui/
│   │   │   ├── screens/
│   │   │   ├── components/
│   │   │   └── theme/
│   │   │
│   │   ├── viewmodel/
│   │   │
│   │   ├── navigation/
│   │   │
│   │   └── utils/
│   │
│   ├── res/
│   └── AndroidManifest.xml

Build Commands

Development Build

# Debug APK
./gradlew assembleDebug

# Install ke device
./gradlew installDebug

Production Build

# Release APK
./gradlew assembleRelease

# Generate App Bundle (AAB)
./gradlew bundleRelease

Testing

# Unit tests
./gradlew test

# Instrumentation tests
./gradlew connectedAndroidTest

Lisensi

MIT License

Copyright (c) 2025 Elnoah

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

Developer

Elnoah Agustinus Markus Manalu

Acknowledgments


Elnoah ©2025

About

Aplikasi Cek Cuaca berbasis Jet Compose dan WeatherAPI

Topics

Resources

Stars

Watchers

Forks

Contributors

Languages