Zirve Asansör sayfasına dön
TabelaV

Teknisyen — Çevrimdışı Çalışan Saha Uygulaması

Makine dairelerinde ve bodrumlarda sinyal yok ve teknisyen bir ziyareti kaydetmek istediğinde tam orada duruyor.

Rol

Son istemci ve başlarken en az bildiğim. Çevrimdışı kurallarını ve bir kaydın şeklini ben belirledim; senkron kuyruğunun kendisini ve push bağlantısını baştan öğrendiğim şeyler olarak listeledim, yapımı yapay zekâ kodlama ajanlarıyla yürüttüm.

Stack

React NativeExpoTypeScriptAsyncStorageexpo-printReact Navigation
Teknisyen — Çevrimdışı Çalışan Saha Uygulaması

Overview

Makine dairelerinde ve bodrumlarda sinyal yok ve teknisyen bir ziyareti kaydetmek istediğinde tam orada duruyor. Bu yüzden uygulama önce telefona yazıyor. Ekran hemen kaydedildi diyor, kayıt bir kuyruğa giriyor, kuyruk bağlantı gelince senkronize oluyor. Her kayıt telefonda üretilmiş bir kimlik taşıyor; bağlantı koptuktan sonra yeniden göndermek ikinci bir kayıt açmak yerine aynı ziyareti güncelliyor. Bunun etrafında ilçeye göre bina listesi, henüz kimsenin üstlenmediği açık arızalar ve firmanın hep kullandığı kâğıt formun aynısı olan, müşteriye verilebilecek bir PDF olarak çıkan servis formu var.

Neler yapıyor

  • IÖnce telefona kaydedilen ziyaretler; kuyruk bağlantı olunca senkronize oluyor
  • IIBu ay tek bakışta: yapılan ziyaret, bekleyen bina, kalan gün
  • IIIİsimle üstlenilen arızalar; iki teknisyen aynı binaya gitmiyor
  • IVTelefondaki kâğıt servis formu, tek sayfa A4 PDF olarak çıkıyor
  • VHer binanın yöneticisi, telefonu ve asansör kaydı, sinyalsiz de okunabiliyor

Ekranlar

Uygulama açılışı
Uygulama açılışı
Bu ayki kapsam
Bu ayki kapsam
İlçeye göre binalar
İlçeye göre binalar
Sahada bir bina
Sahada bir bina
Servis formu
Servis formu
Açık ve üstlenilmiş arızalar
Açık ve üstlenilmiş arızalar
Bir arızanın durum geçmişi
Bir arızanın durum geçmişi
Senkron kuyruğu
Senkron kuyruğu

Teknik notlar

  • IAna ekran iki kez yapıldı. İlk sürüm beş günlük bir şeritti, bugün ortada, bir güne dokun, o günün ziyaretlerini gör. Doğru görünüyordu ve kimsenin sormadığı bir soruya cevap veriyordu; çünkü backend'de güne göre bir program yok ve teknisyenler güne göre plan yapmıyor, bir ilçeyi baştan sona geziyorlar. İki gün sonra şerit dönen bir ilçe listesi oldu: bir ilçeye dokun, binalarını ve bu ay kaç tanesinin hâlâ beklediğini gör.
  • IIBaşarısız senkron bir zamanlar hüküm sayılıyordu. Çevrimdışı ya da sunucu hatası olmayan her şey servis formunu yüklendi diye işaretliyordu; yani başarısız bir çizim, dolu bir disk ya da süresi geçmiş bir token, telefondan hiç çıkmamış bir formu bitti diye işaretleyebiliyordu ve uygulamada onu yeniden isteyecek hiçbir şey yoktu. Artık yalnızca yetkiyle ilgisi olmayan gerçek bir istemci hatası formu bitti sayabiliyor. Gerisi kuyrukta kalıyor.
  • IIIBasılan form şirketin gerçek adresini ve iki gerçek telefon numarasını düz metin olarak taşıyordu; bir test dosyası da tam bu metinleri doğruluyordu. Yalnızca şablonu taşımak numaraları git'te bırakırdı. Şimdi üç ortam değişkeni sağlıyor, şablon anteti parametre olarak alıyor ve testler belli ki sahte yer tutucular kullanıyor.

Neler öğrendim

Çevrimdışı öncelik, siz bilerek silene kadar eski verinin varsayılan olması demek. Bu sayfanın ekran görüntülerini uydurma binalardan oluşan bir veritabanına karşı hazırlarken uygulama, daha tek bir istek çıkmadan, önbelleğindeki gerçek binalar ve gerçek yöneticilerle açıldı. Simülatörü sıfırlamak zorunda kaldım. Bodrum için doğru, ekran görüntüsü için yanlış davranış; ikinci durumu hiç düşünmemiştim.