Kullanıcıların AI ile Kurduğunuz Uygulamaya Fotoğraf Yüklemesine İzin Vermek (Uygulamayı Çökertmeden)
Bir AI ile kurulan uygulamaya fotoğraf yükleme özelliği eklemek; dosyaları veritabanında değil özel dosya depolamasında saklamak, 10 MB gibi bir boyut ve dosya türü sınırı belirlemek ve küçük bir önizleme küçük resmi (thumbnail) oluşturmak demektir — builder'ınıza vereceğiniz temel talimatlar bunlar.
Uygulamanız salt metin olmaktan çıkıp insanların fotoğraf yüklemesine izin vermeye başladığı an, bir şey değişir. Görsel ve dosya yükleme eklemek, kullanıcının kendi cihazından bir fotoğraf, fiş veya belge göndermesine izin vermek demektir; uygulama bunu saklar ve sonra tekrar gösterir — bir profil fotoğrafı, bir fiş, hasarlı bir paketin fotoğrafı, bir PDF sözleşme. Tek bir onay kutusu gibi görünüp altında birkaç sivri uç barındıran özelliklerden biri bu. Hiçbiri zor değil. Ama kimsenin sizi önceden uyarmadığı sorunlar, genellikle lansmandan üç hafta sonra, çoğunlukla en hevesli kullanıcınızdan gelir.
Bu yazı, biri “yükle”ye bastığında aslında neler olduğuna, sonradan sizi ısıran üç hataya ve bunlardan kaçınmak için builder’ınızdan tam olarak neler istemeniz gerektiğine dair bir tur.
Bir uygulamaya fotoğraf yüklediğinizde gerçekte ne olur?
Fotoğraf yüklemek sırasıyla dört adımı tetikler: telefonunuz dosyayı uygulamaya teslim eder, uygulama bunu ayrı bir dosya depolamasına gönderir (veritabanına değil), uygulama o dosyaya bir bağlantı kaydıyla kaydı ilişkilendirir ve daha sonra biri kaydı görüntülediğinde o bağlantıyı kullanarak dosyayı getirir.
Adım adım şöyle görünür:
- Telefon, dosyayı uygulamanıza teslim eder. Modern bir telefon fotoğrafı çoğu zaman 4 ila 12 megabayt arasındadır. Bu az bir şey değil.
- Uygulamanız bu dosyayı saklanmak üzere bir yere gönderir — uygulamanızın veritabanına değil, dosyalar için tasarlanmış ayrı bir depolama alanına (storage bucket).
- Uygulamanız o dosyaya bir bağlantı kaydeder, veritabanında kaydın geri kalanının yanına (bu fiş, şu harcamaya ait).
- Daha sonra biri kaydı görüntülediğinde, uygulama o bağlantıyı kullanarak dosyayı depolamadan getirir ve gösterir.
İnsanların yanlış anladığı kısım 2. ve 3. adımlar. Fotoğrafın “uygulamanın içine kaydedildiğini” düşünürler. Öyle olmaz, olmamalı da. Dosyalar depolamada yaşar; veritabanınız sadece nerede olduklarını hatırlar. Bu ayrımı doğru kurduğunuzda, sonrasındaki her şey kolaylaşır.
Yüklenen fotoğrafları doğrudan veritabanında saklamalı mısınız?
Hayır — ve bu, en yaygın yükleme hatası; siz açıkça belirtmezseniz AI builder’ların bazen varsayılan olarak yapacağı bir şey. 10 MB’lık bir fotoğrafı doğrudan veritabanınıza tıkıştırmak, mobilyalarınızı cüzdanınızda saklamaya benzer. Veritabanı; isimler, tarihler, fiyatlar gibi küçük ve yapılandırılmış şeyler için tasarlanmıştır. İçine fotoğraf doldurursanız yavaşlar, yedeklemeler şişer ve bir gün eskiden anında açılan bir sayfa, yüzlerce tam çözünürlüklü görüntüyü sürüklediği için altı saniyede açılmaya başlar.
Bunun yerine istediğiniz şu: dosya dosya depolamasına (builder’ınız buna “storage bucket” veya “blob storage” diyebilir) gider, veritabanı ise sadece bağlantıyı tutar. Doğrudan isteyin:
“Yüklenen görselleri veritabanında değil, dosya depolamasında sakla. Kayıtta sadece dosya URL’sini tut.”
Kullanıcıların yanlış dosya türü veya çok büyük bir dosya yüklemesini nasıl engellersiniz?
Neyin izinli olduğuna önceden siz karar verirsiniz — dosya türü, boyut sınırı ve net bir hata mesajı — ve bunu builder’ınıza açıkça söylersiniz; çünkü bu kurallar olmadan uygulamanız her şeyi kabul eder, yüklemeyi tamamen kilitleyen dosyalar dahil. Bunu test aşamasında sorunsuz çalışan iki gerçek örnek gösteriyor:
Küçük bir catering işletmesi işleten bir kadın, müşterilerin beğendikleri pasta fotoğraflarını yükleyebilmesi için bir uygulama kurdu. Her şey yolundaydı, ta ki bir müşteri profesyonel bir kameradan doğrudan 47 MB’lık bir fotoğraf yükleyene kadar. Yükleme takıldı, müşteri vazgeçti ve kadın bunu “uygulamanız bozuk” diye duydu. Aslında bozuk değildi — sadece hiç boyut sınırı belirlenmemişti, o yüzden uygulama koca dosyayı sonsuza kadar yutmaya çalışarak öylece kaldı.
İkinci bir örnek: bir serbest çalışan, müşterilerin “logolarını” yükleyebileceği bir müşteri portalı kurdu. Bir müşteri .zip dosyası yükledi. Bir başkası 90 sayfalık bir PDF yükledi. Uygulama hepsini kabul etti, çünkü kimse ona bir logonun ne olması gerektiğini söylememişti.
Şu üç şeye önceden karar verin:
- Hangi dosya türleri? Sadece fotoğraflar mı? O zaman JPG ve PNG’yi kabul edin, gerisini dostane bir mesajla reddedin.
- Ne kadar büyük? Makul bir fotoğraf sınırı 5 ila 10 MB civarıdır. Gerçek bir telefon fotoğrafı için yeterince büyük, bir kamera aktarımını durdurmak için yeterince küçük.
- Ya yanlışsa? Uygulama bunu nazikçe söylemeli — “Lütfen 10 MB’ın altında bir JPG veya PNG yükleyin” — donup kalmak yerine.
Builder’ınıza söyleyin:
“Sadece 10 MB’a kadar JPG ve PNG görsellere izin ver. Biri başka bir şey ya da çok büyük bir dosya yüklerse, sessizce başarısız olmak yerine net bir mesaj göster.”
Çok sayıda fotoğraf olduğunda uygulamanız neden yavaş hissettiriyor?
Çünkü her görüntüleyen, küçültülmüş bir kopya değil, tam boyutlu orijinali her seferinde indirir — telefonunda, veri planıyla, biri kaydı her açtığında yeniden. Diyelim ki biri 8 MB’lık net bir fotoğraf yükledi ve tek başına gayet iyi çalışıyor. Bunu yirmi fotoğraflık bir galeriyle çarpın, hızlı küçük uygulamanız çamurda yürümek gibi hissettirsin.
Bu sorunun bilinmeye değer bir adı var, çünkü builder’ınız bunu tanıyacaktır: thumbnail, yani yeniden boyutlandırılmış bir sürüm. Fikir şu: orijinali saklarsınız ama aynı zamanda küçük, web’e uygun bir kopya da oluşturursunuz ve listelerde, önizlemelerde küçük kopyayı gösterirsiniz. Tam boyutlu olan, ancak biri gerçekten büyük görmek istediğinde yüklenir.
“Bir görsel yüklendiğinde, önizlemeler ve listeler için daha küçük, yeniden boyutlandırılmış bir sürüm de oluştur. Varsayılan olarak küçük sürümü göster ve tam görseli sadece biri büyütmek için tıkladığında yükle.”
Bunun nasıl yapıldığını anlamanıza gerek yok. Var olduğunu bilmeniz yeterli, böylece uygulamanız yavaş hissettirmeye başlamadan önce isteyebilirsiniz.
Karar vermeye değer birkaç sessiz mesele
Bu üç kararı atlarsanız uygulamanız bozulmaz, ama şimdiden almak sonradan geri eklemekten daha ucuzdur: dosyayı kim görebilir, kayıt silindiğinde dosyaya ne olur ve yükleme telefonda çalışır mı.
- Dosyayı kim görebilir? Bir profil fotoğrafının herkes tarafından görülmesinde sorun yok. Taranmış bir kimlik veya imzalı bir sözleşme için durum farklı. Dosya özelse, builder’ınıza bağlantının giriş yapmayı gerektirmesi gerektiğini, herkesin açabileceği herkese açık bir URL olmaması gerektiğini söyleyin. Hassas herhangi bir şey için en çok üzerinde duracağım nokta bu.
- Kayıt silindiğinde ne olur? Biri bir harcamayı silerse, fişin fotoğrafı da temizlenmeli mi? Yoksa yavaş yavaş, sakladığınızı unuttuğunuz ama depolaması için para ödediğiniz sahipsiz dosyalar biriktirirsiniz.
- Telefonda çalışıyor mu? Yüklemelerin çoğu telefonlarda gerçekleşir, telefonlar da hem “şimdi bir fotoğraf çek” hem de “kütüphaneden seç” seçeneği sunar. İkisini de gerçek bir telefonda test edin, yalnızca dosyayı sürükleyip bıraktığınız laptop’ınızda değil.
Bir yabancı gibi test edin
Bitmiş saymadan önce, gerçek bir kullanıcının kazara yapacağı şekilde bilinçli olarak bozmaya çalışarak test edin — normal bir fotoğraf, aşırı büyük bir dosya, yanlış dosya türü, canlı bir telefon kamerasından yükleme ve bir silme işlemi:
- Normal bir telefon fotoğrafı yükleyin. Görünüyor mu ve önizleme hızlı mı?
- Büyük bir şey yükleyin. Uygulama sizi net bir mesajla mı durduruyor, yoksa öylece takılıp mı kalıyor?
- Yanlış türde bir şey yükleyin — fotoğraf beklenen yere bir PDF gibi. Kuralı açıklıyor mu?
- Uygulamayı telefonunuzda açın ve doğrudan kameradan yükleyin.
- Bir kaydı silin ve dosyasının kararlaştırdığınız şekilde ele alınıp alınmadığını kontrol edin.
Bu beşi de düzgün çalışıyorsa, çoğu insanı yakalayan sivri uçları temizlemişsiniz demektir.
Yüklemeler, “demoda çalışıyor” ile “trende, 12 MB’lık bir kedi fotoğrafıyla bir yabancı için çalışıyor” arasındaki farkın tam olarak yukarıdaki kararlar kümesi olduğu özelliklerden biri. Hiçbiri zor değil. Sadece atlanması kolay — ve şimdi istemek, sonradan onarmaktan çok daha kolay.
Büyük bir teknik sıçrama gibi hissettirdiği için yükleme eklemeyi ertelediyseniz, öyle değil. Builder’ınızı açın, boyut sınırlı ve thumbnail’li görsel depolama isteyin ve size neler verdiğine bakın. Sonra telefonunuzda bozmaya çalışın — gerçek test bu, ve beş dakika sürer.