Teklif al
Mobil

Day Sheet — Ev temizlikçisinin günü tek iPhone ekranında

Tek başına çalışan ev temizlikçisi için geliştirdiğimiz kendi iPhone uygulamamız. Günün evleri sırasıyla tek ekranda; kapı kodu Face ID arkasında kilitli, ertelenen ziyaret rotasyonu kaydırmıyor. Aboneliği, Apple'ın imzasını kendi içinde doğrulayan bir PHP sunucusu denetliyor.

Kategori Mobil
Müşteri Algoriel ürünü
Hizmetler Mobil Uygulama, Sistem Mimarisi
Yıl 2026
Durum App Store incelemesinde
Rol Tasarım & Geliştirme

Bağlam

Sabit bir rotasyonla birçok eve giden temizlikçi, kapı ve alarm kodlarını kâğıtta ya da not uygulamasında taşıyor. Müşteri tek bir ziyareti ertelediğinde iki ya da dört haftalık düzenin nereye kaydığını aklında tutmak zorunda. Oda listesi, evcil hayvan ve park notu da ayrı yerlerde dağınık.

Day Sheet’i bu iş akışı için kendi ürünümüz olarak yazdık: ABD, Kanada ve Birleşik Krallık için İngilizce bir iPhone uygulaması ve aboneliği doğrulayan bir PHP sunucusu. Ev, adres ve kod bilgisi telefondan çıkmıyor; sunucu abonelik işlemini doğruluyor. Uygulama şu an App Store incelemesinde.

Genel çalışma biçimimiz

Planlama

İşin bugün nasıl yürüdüğünü ve yazılımdan ne beklediğinizi konuşuyoruz; kapsam buradan çıkıyor.

Mimari

Sistemin hangi parçalardan kurulacağına ve bilginin nerede tutulacağına karar veriyoruz.

Modelleme

Ekranları ve akışı kod yazmadan önce çiziyoruz; onayınızdan sonra geliştirmeye geçiyoruz.

Geliştirme

Yazılımı, başka bir ekibin de sürdürebileceği düzende yazıp teslim ediyoruz.

Sürecimizi gör →

Ne inşa ettik

  • Tarih aritmetiğiyle çıkan gün listesi

    Günün evleri yalnız gün, sıklık ve ilk ziyaret tarihinden hesaplanıyor. Hafta farkı gün farkından yuvarlandığı için yaz saati geçişi rotasyonu kaydırmıyor.

  • İstisna satırı olarak erteleme

    Erteleme ya da atlama tek satırlık bir istisna olarak tutuluyor, eve geri yazılmıyor. Taşınan ev yeni gününde 'Moved from' etiketiyle görünüyor.

  • Ev başına Keychain kaydı

    Kod her ev için ayrı Keychain kaydında duruyor, veri modelinde yer almıyor. Live Activity, hatırlatma ve Siri yanıtı kodu taşımıyor; birim testleri bunu denetliyor.

  • Kilit ekranından kapanan ziyaret

    Arrived'a basınca kilit ekranında ve Dynamic Island'da oda sayacı ile süre başlıyor. 'Mark done' ziyareti uygulamayı açmadan kapatıyor; Live Activity yalnız yerel güncelleniyor.

  • Dışarı çağrı yapmayan abonelik sunucusu

    PHP sunucusu Apple'ın JWS zincirini sabitlenmiş Apple Root CA G3'e karşı dışarı çağrı yapmadan doğruluyor. Sunucuya ulaşılamazsa ödeyen kullanıcı kilitlenmiyor.

Nasıl geliştirdik

  • Swift
  • SwiftUI
  • Observation
  • SwiftData
  • StoreKit 2
  • ActivityKit
  • WidgetKit
  • AppIntents
  • Contacts/ContactsUI
  • UserNotifications
  • LocalAuthentication
  • Security (Keychain)
  • MetricKit
  • PHP 8.3
  • PDO
  • SQLite
  • MySQL
  • PHPUnit

Zorluk ve sonuç

Her satır bir çift: solda işin çözmesi gereken zorluk, sağda sistemin buna verdiği karşılık.
Zorluk Sonuç
Kapı ve alarm kodları kâğıtta ya da not uygulamasında, kilitsiz bir satırda duruyor Kod ev başına Keychain kaydında; Face ID ya da paroladan sonra varsayılan olarak yarım dakika görünüyor
Müşteri tek ziyareti erteleyince temizlikçi iki ya da dört haftalık rotasyonun nereye kaydığını hesaplıyor Erteleme ve atlama yalnız o ziyareti değiştiriyor; rotasyon ilk ziyaret tarihine bağlı kalıyor
Ziyaret bitince uygulamayı açıp kaydı kapatmak ve günün kazancını ayrıca toplamak gerekiyor Ziyaret kilit ekranından kapanıyor; belirlenen ücret günün ve ayın toplamına ekleniyor
Sunucu tarafında aynı abonelik işlemi başka bir kurulumdan gelip ikinci telefonda Solo hakkı açabilir Bir işlem tek kuruluma bağlı; başka kurulumdan gelen aynı işlem reddediliyor

Day Sheet hakkında bir sorunuz mu var?

Day Sheet App Store incelemesinde; onay gelmeden indirilemiyor. Ürün hakkındaki sorunuzu bize yazabilirsiniz.