Uygulamalar da ev yemeği gibi yapılabilir (2020)
(robinsloan.com)- BoopSnoop, dört kişilik bir ailenin kullanımı için yapılmış son derece basit bir mesajlaşma uygulaması; 2020’nin ilk haftasında yayımlandıktan sonra üç zaman dilimindeki dört kişi tarafından indirildi ve o günden beri günlük 4 aktif kullanıcı ile 0 terk oranını korudu
- Tapstack kapandıktan sonra Instagram ya da WhatsApp grubu yerine aileye özel bir uygulama yapıldı; fotoğraf ve video mesajlarının tam ekran gösterilip sonra kaybolduğu yapı korundu
- Uygulama yalnızca kamera ekranı, bekleyen mesaj rozeti, AWS S3, AWS Lambda ve TestFlight dağıtımından oluşuyordu; giriş ve kişi yönetimi gerektirmeyen bir situated software olduğu için daha da sadeleşti
- Yapımı yaklaşık 1 hafta sürdü; bunun yaklaşık yarısı Xcode kod imzalama ve provisioning sorunlarına gitti, ama açık kaynak bileşenler ve örnek kodlar uygulamayı mümkün kıldı
- Profesyonel ve ölçeklenebilir bir yazılım olmasa da, yakınlar için yapılan bir uygulama; ani yeniden tasarımlar, reklamlar ya da pivotlar olmadan, kullanıcılar değiştirmek istediğinde değişen bir ev gibi yazılım olabilir
Tapstack’in geride bıraktığı aile kanalı
- Tapstack, telefon kamerasının canlı görüntüsünün altında kişi ya da grup yüzlerinden oluşan bir ızgara gösteren bir uygulamaydı
- Dokununca fotoğraf çekiyor, basılı tutunca video kaydediyordu
- Parmak bırakılır bırakılmaz mesaj gönderiliyor, düzenleme ya da gözden geçirme aşaması olmuyordu
- Gelen mesajlar bir “stack” içinde birikiyor, kullanıcı kaydırıp baktıktan sonra kayboluyordu
- Ailenin Tapstack ızgarası anne, baba, kız kardeş ve bu üçünü bir araya getiren grup dahil dört bölmeden oluşuyordu
- Bu uygulamanın gücü pratik iletişim ya da plan koordine etmekten çok ambient presence tarafındaydı
- Thread’ler ve geçmiş olmadığı için cevap bekleme baskısı daha azdı
- Kahveyle çekilmiş bir selfie, donmuş gölet fotoğrafı ya da yeğenlerin yaramaz videoları, hep “aklımdasın” duygusunu iletmenin bir yoluydu
- Tapstack büyük bir kullanıcı kitlesi edinmiş gibi görünmüyordu, reklamı da yoktu ve kullanıcılardan ödeme istemiyordu
- 2019’da güncellemeler durduktan sonra sonbaharda kapanacağını duyurdu, kullanıcılara verilerini dışa aktarma yolunu sundu ve kapandı
Aile için alternatif uygulama BoopSnoop
- Tapstack kapandıktan sonra ailenin bir alternatife ihtiyacı vardı, ancak Instagram ya da WhatsApp grupları sıcak aile kanalını başka unsurların çevrelediği bir his veriyordu
- BoopSnoop, sadece aile için yapılmış bir sihirli pencere gibi bir uygulama
- Fotoğraf ve video yakalayıp aileye iletiyor
- Mesajlar kuyrukta bekliyor ve görüntülenince kayboluyor
- Görüntüleme ekranı her zaman tam ekran ve yorum ya da paylaşımı teşvik eden unsurlar yok
- Arayüz neredeyse yok denecek kadar az
- Bir kamera düğmesi var
- Köşedeki sakin yeşil rozet, bekleyen mesaj sayısını gösteriyor
- 2020’nin ilk haftasında yayımlandı ve üç zaman dilimindeki dört kişi tarafından indirildi
- O günden beri günlük 4 aktif kullanıcı ve 0 terk oranıyla, üreticisinin tüm beklentilerini aşan bir başarı oldu
Sadelik sağlayan uygulama yapısı
- BoopSnoop, Tapstack’ten de basit tasarlandı
- Bir giriş sistemine ihtiyaç yok
- Kişi oluşturma ve yönetme arayüzüne ihtiyaç yok
- Kimin kullanacağı zaten baştan tam olarak biliniyor
- Clay Shirky’nin situated software kavramındaki gibi, kişiselleştirme gerektiren bir yazılım değil; en baştan kişisel olan bir yazılıma daha yakın
- Temel, fotoğraf ve video girişi için kamera ekranı
- Dokunarak fotoğraf çekme, basılı tutarak video kaydetme gibi tanıdık bir etkileşim modeli kullanıyor
- Bu bölüm için açık kaynak SwiftyCam bileşeni kullanıldı
- Bu bileşen olmadan proje zor olurdu
- Backend en küçük yapıdaydı
- Fotoğraf ve videoları bir AWS S3 bucket saklıyor
- Birkaç AWS Lambda fonksiyonu, yeni mesaj yüklendiğinde gereken işlemleri yapıyor
- Aileye dağıtım TestFlight ile yapılıyor ve uygulama sürekli “rahat, sonsuz beta” olarak kalıyor
Gerçek geliştirmede karşılaşılanlar
- Daha iyi bir dünyada, iOS için modern ve esnek bir HyperCard benzeri araçla bir günde yapılabilecek bir uygulamaydı
- Gerçekte yaklaşık 1 hafta sürdü ve bunun yaklaşık yarısı kod imzalama ve ID provisioning sorunlarıyla uğraşarak geçti
- Yine de açık kaynak bileşenler ve örnek kodlar projeyi mümkün kıldı; dünya tamamen bozulmuş değildi
-
- yüzyıl programlama, son teknolojinin sınırları içinde çalışırken Lego gibi birleştirme hissi verebiliyor
- Kodun yayımlanması başkalarına rehber olabilir, ancak uygulama koduna uygulamaya özel değerler ve kimlik doğrulama anahtarları yoğun biçimde karışmış durumda
- Bu uygulama bir framework ya da şablon değil, uygulamanın kendisi
- Bu karakter, uygulamanın yapıldığı ruh halinden ayrı değil
“Ev yemeği” gibi programlama
- Yapımcısı kendini profesyonel bir yazılım mühendisi olmaktan çok evde yemek yapan birine karşılık gelen programcı olarak görüyor
- “Kod yazmayı öğren” sözü çoğu zaman piyasa değeri, ekonomik kaldıraç, kariyer değişimi ve özgeçmişle bağlantılı oluyor
- “Yemek yapmayı öğren” sözü ise sadece şef olmak için var değil
- Daha iyi beslenmek için öğrenilebilir
- Daha ucuza yemek için öğrenilebilir
- Bir geleneği sürdürmek için öğrenilebilir
- Sıkıntıdan ya da öğreten kişiyle vakit geçirmek istendiği için de öğrenilebilir
- Yemek yapmak; alım satımın ötesinde ev, merak, tarih, kültür, bakım ve sevgiyle bağlantılıdır
-
- yüzyılda sevilen birçok insan, sürekli yanlarında taşıdıkları cep bilgisayarlarının içinde beklediği için, kod yazmak da bu şekilde bağ kurabilir
- Programlama, profesyonellik ve ölçeklenebilirlik taleplerinden çıktığında başka bir etkinliğe dönüşür
- Evde yemek yapmak, ticari mutfakta yemek yapmaktan nasıl farklıysa, aile için uygulama yapmak da farklı türden ödüller verir
- BoopSnoop, aile istemediği sürece değişmez
- Ani yeniden tasarımlar, reklam seli ya da anlaşılmaz bir kullanıcı tabanının peşinden koşan pivotlar yok
- Bir gün ortadan kalksa bile bu, ailenin kararı olur
Yıllar sonra da kullanılmaya devam eden uygulama
- Şubat 2022 güncellemesine göre aile, 2 yıl sonra da BoopSnoop’u her gün kullanıyordu ve annenin isteğiyle bir özellik eklenmişti
- Şubat 2023’te de her gün kullanılmaya devam ediyordu
- Şubat 2024’te de kullanılmayı sürdürüyordu ve TestFlight build numarası 26’ydı
- Şubat 2025’te uygulamada kelimenin tam anlamıyla hiçbir şey değiştirilmemişti ve TestFlight build numarası 30’du
1 yorum
Hacker News yorumları
Bu şiir gibi. Son 10 yıldır kişisel projeler geliştiriyorum ve eskiden kullandığım e-posta, takvim gibi her gün kullandığım tüm uygulamaların yerini aldılar.
Birinin kullandığımı gördüğü her seferinde “Vay, harikaymış; nasıl indirebilirim?” diye soruyor ama cevap hep aynı: indiremezsiniz.
Yalnızca kendiniz için bir şey tasarlamanın bir güzelliği var ve bu tek projenin zihinsel iyi oluşumu koruduğundan %100 eminim.
Hiçbir şirketin ya da maaşın veremeyeceği, geleceğe dair umut ve mutluluk kaynağı; dünyaya karşı benim joker kartım.
Kendi yaptığınız araçta daha ilk günden o aracın dünyadaki en büyük uzmanı olmanız, sanıldığından daha büyük bir şey. Hangi yazılım için tüm özelliklerini, kısayollarını ve iç işleyişini %100 bildiğinizi söyleyebilirsiniz ki?
İş veya üretkenlik aracıysa, bu “tam hâkimiyet” sayesinde inanılmaz verimli olabilir; her gün kullanıp küçük düzeltme ve optimizasyonları geri besledikçe araç sizinle birlikte büyür.
Not uygulamam artık kişisel bilgi tabanı, proje yönetimi, yapılacaklar listesi, günlük planlama ve günlük tutma işlerini üstleniyor; yalnızca ihtiyaç duyduğum özellikler olduğu için hafif ve hızlı.
Sonuç olarak hepimizin kendi araçlarımızı yapmayı daha çok denemesi gerektiğini düşünüyorum.
Başkalarının kullanabileceği, öğrenebileceği ve üzerine inşa edebileceği; fakat geri bildirim ve katkı istemediği beklentisini netleştiren bir yol bu.
Gerçi bu, sondaki “benim joker kartım” cümlesiyle çelişebilir.
Mesajlardan etkinlik oluşturmak, e-postayı Signal kişilerine iletmek gibi uygulamaları birbirine entegre etmiş olabilir mi diye düşünüyorum.
Ben tekrarlı işleri hızlıca script’lerle otomatikleştiriyorum ama tüm script’leri tek bir yerde birleştirmedim. Ayrı tutunca bakım yükü azaldığı için o yola girer miyim bilmiyorum.
Biri bununla ilgili sinir bozucu bir yazı yazsa bile görmezden gelebilirsiniz; benim onu kullanma biçimimi etkilemez.
Eleştiri, patch veya bug report almak istemiyorsanız GitHub gibi yerlerde issue, pull request ya da tartışma alanı olmadan yalnızca dosyaları yayımlayabilirsiniz.
Görenler hayran kaldı ve birkaç kişi ayarlarımı istedi ama gerçekten alışan kimse olduğunu sanmıyorum.
Güzel yazı. Birkaç yıl önce eşim için yaptığım macOS uygulamasını hatırlattı.
Eşimin sevdiği dükkânların çalışma saatlerini takip ediyor; menü çubuğu simgesine tıklayınca bugün her bir dükkânın kapanmasına ne kadar kaldığını gösteriyor.
Kalabalık saat olup olmadığını da söylüyor; böylece daha az yoğunken gitmek istemesine uygun düşüyor.
Veriyi metin dosyasında tutan basit bir Qt uygulaması; adının ne olacağını sorunca “çiçek adı gibi, Gladiolus” dedi, ben de öyle koydum.
Bir programcı olarak Gladiolus’un tek kullanıcısından daha minnettar bir müşterim hiç olmadı.
Xcode’un kod imzalama ve kimlik sağlama işleriyle boğuşurken tütsü yakıp taşları fırlatınca Xcode tanrılarının geçişe izin verdiği kısmı bana çok dokundu.
Modern yazılım geliştirmede kendi derdinizi kendiniz çözmeye çalışırken ortaya çıkan büyük sürtünme bu.
Bilgi işlem ilkelerini anlayıp bileşenleri mantıklı biçimde birleştirerek yeni bir şey yaratan mühendislik düşüncesi değil; Google’da bulunan büyülü sözleri tekrar tekrar söyleyip kafayı duvara vura vura bir noktada çalışmasını sağlamak.
Bu ölçüte göre Apple ve Microsoft fiilen eleniyor.
Apple’ın Xcode’da profil, anahtar imzalama vb. işleri “evet, kolayca yap” düğmesiyle yönetilebilir hâle getirmesi bir ilerleme; ama ayarları rastgele unutması ya da bozması yüzünden sorunu tekrar izlemek gerekiyor.
O hizmeti çalıştırmak için kimseden izin almanız gerekmiyor. Router’ı dışarı açmadan Pi üzerinde özel yapılacaklar uygulamamı çalıştırıyorum; inanılmaz özgür hissettiriyor.
Bu yazı HN’ye ilk geldiğinde beni çok etkilemişti; zaten bilinçsizce yaptığım şeyi kelimelere dökmeme yardımcı oldu.
Birkaç yıl önce pek çok kişi gibi homelab kurmaya başladım; zamanla ailem ve 5–15 yakın arkadaşım için uygulamalar yapıp kendi kendime barındırdığım bir hobiye dönüştü.
Film gecesi planlama gibi küçük uygulamalar ve grup sohbeti entegrasyonları çok yaptım; bunun sayesinde herkes çok daha sık konuşur ve bir araya gelir oldu.
Birbirini tanımayan uzak arkadaş grupları bile artık bensiz doğrudan buluşup baby shower’lara veya düğünlere gidiyor.
Böyle bir arkadaş grubunuz varsa onlar için bir şeyler yapmayı denemeniz iyi olur.
Kız arkadaşım ve kardeşi birbirleriyle olan ödeme defterini sürekli tutuyordu; kimin ne zaman ne borçlu olduğunu denk getirmekte hep zorlanıyorlardı.
Bu yüzden Google Docs’ta paylaşılan akıllı bir elektronik tablo şeklinde bir “uygulama” yaptım; her ay bilgileri girdiklerinde kimin ne kadar ödemesi gerektiğini hesaplıyor.
Bir yıldan fazla unutup hâlâ kullanıp kullanmadıklarını sorduğumda “Her zaman kullanıyoruz, gerçekten hayat kurtarıcı” dediler.
Aslında sıradan bir elektronik tablo kullanımından ibaret ama yüksek gelirli, yetkin insanlar bile basit hesaplaşmalarda zorlanıyormuş.
Her ay yeni sekmede birlikte büyüttükleri köpeğin fotoğrafını yüklemesini sağladım; özellikle buna bayıldılar. 15 dakikalık önemsiz bir araç yıllardır seviliyor.
Küçük bir insan grubu için küçük araçlar yapmak iyi bir şey.
3 yıl önce ailem ve arkadaşlarım tarif paylaşsın diye basit bir uygulama yaptım; istenen özellikleri eklemeye devam edince yaklaşık 2 yıl sonra ağızdan ağıza yayılmaya başladı.
Ekim ayında sunucu masraflarını karşılayabilmek için yeni kullanıcılardan ücret almak zorunda kalacak kadar büyüdü ve şimdi bunun üzerinde tam zamanlı çalışma ihtimalini düşünüyorum.
Aynı zamanda, bu tür uygulamalarla profesyonel uygulamalar arasındaki uçurumun genişlediğini hissediyorum
Uygulama kullanmak kolaylaştı, ama kitleler için “gerçek” bir uygulama yapmak daha zorlaştı
3 yıldan uzun süredir https://opinionatedlaunch.com kitabını yazıyorum ve “mobil” bölümünü sürekli güncellemem gerekiyor. Harika yeni framework’ler yüzünden değil, Apple ve Google sürekli gereksinim eklediği için
Daha sıkı GPS erişim kısıtlamaları gibi şeyler iyi olabilir, ama ayak uydurmazsanız uygulamanız bir gün platformdan kaldırılır. Bu anlamda “tamamlanmış” diye bir şey yok
1990’da Pascal ile yazılmış küçük bir programı hâlâ dağıtmak mümkün olabilir, ama mobil uygulamada bunun karşılığı olan yolu bilmiyorum. Çalıştırmaktan değil, dağıtımdan bahsediyorum
Giderek HTML tarafını daha çok tercih eder oldum
Değiştirecek bir şey yoktu ve tam istediğim gibi çalışıyordu, ama bir noktada Google, en güncel standartları karşılamadığı gerekçesiyle mağazadan kaldırılması gerektiğine karar verdi
Şikâyet etmiyorum;
adbile hâlâ kurulabiliyor, ama başkaları artık indiremez. Bugün ikili dosyayı derleyebilir miyim, muhtemelen zor olurHenüz çalışır hâle getiremedim, ama UI’ı yeterince basit tutarsanız aynı kodu iStuff için Objective C’ye, Android ve masaüstü için C++’a, web için Javascript’e derleyebileceğiniz bir tablo var
Her uygulama, platformdan bağımsız bir şekilde rastgele nimscript’i değerlendirebilir
Yapmak istediğim uygulamanın ne olduğunu uzun zaman önce unuttum, ama yeniden hatırlarsam kimsenin onun her yerde çalışmasını engelleyememesini umarım
Ancak çoğu yazılımın da gerçekten “tamamlanmasının” zor olduğunu düşünüyorum
Popüler kültürden tamamen ayrı bir kategori değilse, işlevsel olarak eksiksiz demek zor. GNU units ya da grep için “tamamlandı” denebilir belki, ama çoğu uygulamanın çevresindeki dünyanın değişimine göre değişmesi gerekir
Benim alanımdaki en ileri araçların hepsi script’ler ya da etkileşimli komut satırı üzerinden kullanılıyor
Böyle bir arayüzü hedeflerseniz modern kütüphanelerle GUI yapmaktan çok daha hızlı ve kolay olur, kullanıcı da fazlasıyla bulunur. Yalnızca conda kullanıcıları bile yaklaşık 40 milyon kişi
Bu yazıyı görünce iPhone’da sideloading hakkındaki fikrim değişti
Önceden “büyükannem hack’lenmesin diye kilitli olmalı” tarafındaydım, ama şimdi bunun insanların böyle ev yemeği gibi uygulamalar yapmasını engellediğini düşünüyorum
Ayrıca bilgisayarların sihir olduğu ve yalnızca sihirbazların programlama yapması gerektiği algısını yayıyor. Tanıştığım yazılım geliştiricilerden hiçbiri böyle hissetmedi, ben de böyle hissetmiyorum
Süreç “buradan sonrası ejderhalarla dolu” türü uyarılarla dolu olmalı. Temelde onu Mac’e ya da sıradan bir Chromebook’a daha yakın hâle getirmek
Pixel telefonlar hâlâ root etmeye izin vermiyor mu?
Büyükannenin birikimlerini telefondan ziyade sabit hat üzerinden yapılan geleneksel sosyal mühendislik dolandırıcılıklarıyla kaybetme olasılığı daha yüksek
Apple, App Store’dan ya da onarım durumundan para kazanmaktan daha fazla güvenliği ve spam’i gerçekten önemseseydi, en azından iMessage spam’ine el atardı
Arkadaşlar ve aile için bana bir şirket gibi davranılabileceği bir yol olsaydı birkaç yıl önce kullanırdım, ama TestFlight o kadar kolay ve hedef kitle ölçeği de o kadar büyük ki artık bir engel yok
Mac satın alma maliyet engeli var, ama zaten Mac sahibi olma vergisini de düşünürsek o kadar yüksek değil bence
Bilgisayarların sihir gibi görülmesi doğru, ama bunun nedeni dağıtım değil. İnsanların bilgisayarlarla daha fazla şey yapmak istememesi üzücü
Eskiden ailem 386’da çok temel bir veritabanı uygulaması gibi bir şey kullanırdı, ama bir noktada makineler daha büyük ve korkutucu hâle geldi, insanlar da daha az meraklı oldu
Yaştan kaynaklanıyor olabilir, ama yeni kodu kabul etmeye daha az dost makineler yapmış olmamızdan da kaynaklanıyor olabilir
Mesele yalnızca dolandırıcılığı kimin yaptığı. Suçlular bir kerede büyük bir vurgun yapabilir, ama telefon şirketleri çok daha geniş bir cephede hareket ediyor ve maliyetleri de daha yüksek
Yazıdaki açıklama, uygulama fikri ve uygulama biçimi ferahlatıcı
Tek haneli toplam adreslenebilir pazar (TAM) için yapma fikri, çoğu şeyle güzel bir tezat oluşturuyor
Bu tür uygulamalar bir öğrenme projesinin bir adım üstünde ve bir kişi ya da birkaç kişi için muazzam fayda sağlıyor. Üstelik o birkaç kişi hayattaki en önemli insanlar olduğu için çok daha tatmin edici
Aile için evde yemek yapmaya benzetmesi mükemmel
O dönemde insanların önce kendileri için uygulama yapması doğal kabul edilirdi
Harika bir fikir. Son zamanlarda “küçük ölçekli web” üzerine çok düşünüyorum; çünkü gezegen ölçeğindeki web’den giderek yoruluyorum
Kanada’da küçük bir kasabada yaşıyorum; yalnızca kendi kasabamla ilgileniyorum, bu yüzden kasabamıza tam uyan kasaba ölçekli bir şey olsa güzel olurdu
Ölçeği küçük olduğu için evdeki dolabın içindeki donanımda çalıştırılabilir; çökerse de arkasındaki dev şirkete kızacak bir durum olmaz. Sadece ben olurum; burada da çoğumuz birbirimizi tanır ya da en azından adını duymuşuzdur
Elektrik kesintisi yüzünden bir süreliğine düşse bile o da yerel bir durum olurdu. Özellikle kar fırtınalarında elektrik sık sık kesiliyor ve kullanıcıların da aynı kesintiyi yaşama ihtimali yüksek
Bu yalnızca idealizm ve gerçekte yapmama ihtimalim yüksek; sonuçta çoğu insanın Facebook grupları gibi şeyleri kullanmaya devam edeceğini de düşünüyorum
Temelde ortada ürün yok, yalnızca pazar var; bu yüzden senden başka kimse için pek anlam taşımayabilir
Elbette kendi kaşıntını kaşımak ya da sadece yapmak için yapmak da tamamen meşru; bu da ev yemeği gibi yazılımdır
25 dolarlık donanım, merkezi sunucu olmaması, amatör telsiz lisansı gerektirmemesi ve telefon tabanlı kontrol sunması hoşuma gidiyor
Bir gün temel özelliklerin ötesinde gerçekten harika bir proje yapmak istiyorum, ama henüz ne yapacağımı bilmiyorum
“Tütsü yakıp taş attım, Xcode tanrıları geçmeme izin verdi” cümlesine sesli güldüm
Ben de o tanrılarla sayısız savaş verdim; onlar birer canavar
O cümleyi sevdiysen ilk romanı Mr Penumbra's 24 Hour Bookstore’u okumanı şiddetle öneririm
İşler nasıl bu durumun kabul edildiği bir noktaya geldi? MAGA(Microsoft Apple Google Amazon) artık yazılım paylaşımı yaşamını boğar hale getiriyor
Şirket içinde kullanılan küçük bir uygulamamız var. Bağımsız bir Rails uygulaması sadece; iç iş sistemlerine dokunmuyor
Yine de küçük bir kodu koyacak bir yere ihtiyacımız olursa oraya koyuyoruz. Büyüme grafikleri, iç veriler için küçük bir arama motoru, tekrarlayan işler için bildirim betikleri, blog için RSS→Email betiği gibi rastgele entegrasyon araçları var
Herkesin müşteri verilerinden ayrı bir “ıvır zıvır” uygulaması olsa iyi olurdu
Eğlenceli şeyler yapmanın eşiği düşük olunca insanın zihni özgürleşiyor; her kodun yüksek riskli bir iş operasyonu olması gerekmiyor