Zarif, modern, gizlilik odaklı ve tamamen ücretsiz geri sayım & widget uygulaması.
An elegant, privacy-first, ad-free countdown & iOS/Android widget app built with Expo & React Native.
- 🔒 %100 Gizlilik ve Çevrimdışı (100% Offline & Private): Hesap oluşturma yok, oturum açma yok, arka uç sunucu yok. Tüm etkinlikleriniz, notlarınız ve fotoğraflarınız cihazınızdaki yerel SQLite veritabanında saklanır.
- 🚫 Reklamsız & Ücretsiz: Abonelik yok, uygulama içi satın alma yok, reklam yok.
- 📱 Yerel iOS Widget Desteği (
expo-widgets):- Ana Ekran Widget'ları: Küçük (Small), Orta (Medium) ve Büyük (Large) boyutlarda pinlenen etkinlikleri canlı geri sayımla gösterir.
- Kilit Ekranı (Lock Screen) Widget'ı: Kilit ekranında dikdörtgen alanda yaklaşan etkinliği gösterir.
- 🔔 Yerel Akıllı Bildirimler: Yaklaşan tarihler için internete ihtiyaç duymadan cihaz üzerinde zamanlanan yerel hatırlatmalar (
expo-notifications). - 🎨 Kişiselleştirilebilir Tasarım:
- Özel renk paletleri ve degradeler (gradients)
- Etkinliklere özel kırpılabilir arka plan fotoğrafları
- Açık ve koyu tema (Dark / Light mode) uyumu
- 🌍 Kapsamlı Dil Desteği: Türkçe, İngilizce, Almanca, Fransızca, İspanyolca, Japonca, Korece dahil 30'dan fazla dilde yerelleştirme (
src/i18n).
- Framework: Expo (SDK 57) & React Native (0.86)
- Router: Expo Router (File-based navigation)
- Veritabanı: expo-sqlite
- Widget Altyapısı: expo-widgets
- Animasyon & Etkileşim: React Native Reanimated & Gesture Handler
- Tarih İşleme: date-fns
- Tip Güvenliği: TypeScript
-
Projeyi klonlayın:
git clone https://github.com/serhatkochan/animsat.git cd animsat -
Bağımlılıkları yükleyin:
npm install
-
Geliştirme sunucusunu başlatın:
npm run start
Not: Widget'lar yerel kod gerektirdiğinden, widget'ları tam fonksiyonel test etmek için bir Development Build (
npx expo run:iosveyanpx expo run:android) oluşturmanız önerilir.
Bu proje açık kaynaklıdır; bu nedenle kişisel API anahtarları, sertifikalar ve gizli kimlik bilgileri Git deposunda tutulmaz (.gitignore ile korunur). Projeyi kendi Expo / Apple hesabınızla derlemek için aşağıdaki adımları takip edin:
Projeyi App Store'a göndermek veya EAS üzerinde derlemek istiyorsanız:
- Proje kökündeki
eas.json.exampledosyasınıeas.jsonolarak kopyalayın:cp eas.json.example eas.json
eas.jsondosyasındaki ilgili alanları kendi Apple Developer ve App Store Connect bilgilerinizle doldurun:appleTeamId: Apple Geliştirici Ekip Kimliğiniz (10 haneli alfanümerik kod).ascAppId: App Store Connect'teki uygulamanızın Apple ID numarası.ascApiKeyId: App Store Connect API Anahtar ID'si.ascApiKeyIssuerId: App Store Connect Issuer ID (UUID formatında).ascApiKeyPath: İndirdiğiniz.p8özel anahtar dosyasının yolu (Örn:./AuthKey_XXXXXX.p8).
Güvenlik Uyarısı:
eas.jsonve*.p8dosyaları.gitignoredosyasında tanımlıdır ve asla Git'e commit edilmemelidir!
Uygulamayı kendi adınıza yayınlamak için app.json dosyasındaki şu alanları kendi hesap bilgilerinize göre güncelleyin:
expo.owner: Kendi Expo kullanıcı adınız veya organizasyonunuz.expo.extra.eas.projectId: Kendi projeniz içinnpx eas project:initkomutunu çalıştırarak alacağınız yeni proje kimliği.expo.ios.bundleIdentifier: Uygulamanızın benzersiz iOS Bundle ID'si (Örn:com.sirketiniz.animsat).expo.android.package: Uygulamanızın benzersiz Android paket adı.
animsat/
├── app/ # Expo Router sayfaları (Tabs, dinamik event rotaları)
│ ├── (tabs)/ # Alt menü sekmeleri (Ana sayfa, Ekle, Ayarlar)
│ └── event/ # Etkinlik detay ve düzenleme sayfaları
├── assets/ # İkonlar, yazı tipleri, splash görselleri
├── components/ # Genel UI bileşenleri
├── src/
│ ├── components/ # Uygulamaya özel bileşenler (Kartlar, Seçiciler, Modallar)
│ ├── constants/ # Sabitler (Marka, renkler, kategoriler)
│ ├── hooks/ # Özel React hook'ları (useEvents, useSettings)
│ ├── i18n/ # Çoklu dil çeviri katalogları ve yöneticisi
│ ├── lib/ # Yerel SQLite veritabanı, bildirimler ve yardımcı fonksiyonlar
│ ├── theme/ # Tema sağlayıcısı ve tasarım token'ları
│ └── types/ # TypeScript tip tanımları
├── widgets/ # iOS WidgetKit bileşenleri (CountdownWidget)
├── app.json # Expo uygulama yapılandırması
├── eas.json.example # EAS derleme ve gönderim şablonu
└── package.json # Proje bağımlılıkları ve scriptler
Katkılarınızı memnuniyetle kabul ediyoruz! Bir hata bulduysanız veya yeni bir özellik eklemek istiyorsanız:
- Bu repoyu Fork'layın (
Fork). - Yeni bir özellik dalı oluşturun (
git checkout -b feature/harika-ozellik). - Değişikliklerinizi commit edin (
git commit -m 'feat: harika bir özellik eklendi'). - Dalınıza push yapın (
git push origin feature/harika-ozellik). - Bir Pull Request açın.
Bu proje MIT Lisansı altında lisanslanmıştır. Detaylar için LICENSE dosyasına göz atabilirsiniz.