macOS’in Kayıp Izgara Düzeni Geri Geliyor: GridLion ile Sanal Masaüstleri Deneyimi
Yirmi yıl önce bir Mac masaüstü deneyimi, bugünkünden çok daha iyiydi. O zamanlar tek, günümüz standartlarına göre düşük çözünürlüklü bir ekranla bile, âdeta Hugh Jackman’ın Swordfish filmindeki gibi dokuzdan fazla ekran arasında düşünmeden, kas ve uzamsal hafızayı kusursuzca kullanarak gezinebiliyordunuz. Şimdi, bu deneyimi geri getirmek için geliştirilen GridLion uygulaması ile tanışın. Geliştirici, geçmişe duyduğu özlemi, uygulamanın arkasındaki mantığı ve geliştirme sürecinde karşılaşılan zorlukları paylaşıyor.
2006: macOS Leopard Spaces ve Üretkenliğin Altın Çağı
2006’lı yıllarda, Japon tuvaletleriyle deneyler yaparken aynı zamanda farklı masaüstü işletim sistemlerini de denemekteydim. Geliştirici kariyerimin büyük çoğunluğunu Windows’ta geçirdikten sonra, popüler bir sunumun etkisiyle bir Mac satın alıp TextMate kullanmaya başladım. TextMate ve devrim niteliğindeki metin snippet’leri macOS’e geçişimin katalizörü olsa da, asıl uzun vadeli etkiyi 2006’da tanıtılan macOS 10.5 Leopard ile gelen Spaces yaptı.
Leopard’ın en dikkat çekici özelliklerinden biri Time Machine olsa da, benim için asıl önemli olan John Sciracusa’nın incelemesinde ‘bir torba dolusu öğe’ olarak etiketlediği Spaces idi. Spaces, macOS’e sanal masaüstlerini tanıttı ve bunları özelleştirilebilir bir ızgara düzeninde düzenlemenizi sağladı. Bu düzen, sanal masaüstlerini uzamsal konumdaki gerçek ekranlar gibi algılamanıza olanak tanıyordu. Ben her zaman 3×3 bir ızgarayı tercih ettim ve bunu dokuz ayrı ekranım varmış gibi kullandım:
- Orta ekran web tarayıcım, üstteki ise web düzenleyicimdi; tek tuşla kolayca geçiş yapabiliyordum.
- Sol üstte Xcode, altındaki ekranda ise iOS simülatörü bulunuyordu.
- Diğer ekranlarda e-posta, iTunes veya sohbet gibi uygulamalar için belirli amaçlar atanmıştı.
Bu ızgara düzeni o kadar kullanışlıydı ki, kendi EasyBeats Drum Machine uygulamamdaki 16 sıralama ekranını gezilebilir bir ızgara olarak tasarlarken Apple’ın ekranlarından ilham aldım. Sanal masaüstleri arasında düşünmeden, kas hafızasıyla tıpkı fiziksel ekranlar gibi geçiş yapabilmek inanılmaz bir üretkenlik sağlıyordu.
2011: macOS Lion ve Mission Control ile Geriye Doğru Bir Adım
2011’de macOS Lion’ın piyasaya sürülmesiyle Apple, sanal masaüstlerine yeni bir yorum getiren Mission Control’ü tanıttı. Ancak bu yeni yaklaşım, sanal masaüstlerini anlaşılmaz bir şekilde yalnızca yatay bir çizgiyle sınırlandırdı. Bu değişiklik, benim ve birçok kullanıcının bilgisayarı kullanma şeklini tamamen altüst etti. Tek bir yatay sıra, Spaces’ın sunduğu deneyime göre büyük bir gerilemeydi. Bir ekrandan diğerine klavye kısayoluyla gitmek için artık tüm sırayı yatay olarak kaydırmanız gerekiyordu, bu da uzamsal hafızayı tamamen yok etti.
Bu hayal kırıklığında yalnız değildim. Total Spaces gibi alternatif çözümler ortaya çıktı, ancak bunlar yavaşlamalara neden olabiliyor ve sistem bütünlüğü korumasını aşmayı gerektiren değişikliklere dayanıyordu, bu da onları uzun vadede sürdürülemez kılıyordu. Zamanla, bu duruma alışmak zorunda kaldım, zira bir iOS geliştiricisi olarak pek bir seçeneğim yoktu.
GridLion Doğuyor: Izgara Düzenine Duyulan Özlem Bir Çözüme Dönüşüyor
Yıllar sonra, bir geliştiricinin macOS’te alanlar arası geçiş animasyonunu sistem düzenlemesi gerektirmeden kaldırmayı başardığını gördüğümde her şey değişti. Animasyon beni rahatsız etmemiş olsa da, bir alanın animasyonsuz hareket ettiğini görmek, eski şikayetlerime bir çözüm bulabileceğimi fark etmemi sağladı. Tek bir satırdaki yerel alanları alıp bunları bir ızgara gibi sunan bir model oluşturabilirdim.
LLM’lerin (Büyük Dil Modelleri) kod üretiminde yaygınlaştığı bir dönemde, iyi yazılımın hâlâ bir değeri olup olmadığı sıkça tartışılıyor. Ancak geliştirici, gerçek değerin bir şeyi olabilecek en iyi şekilde rafine etmekte yattığına inanıyor. Özellikle sanal masaüstlerinin ızgara tabanlı navigasyonuna büyük önem veriyor. macOS’in çoğu Mission Control API’sini kilitli tutmasına rağmen, yerel alanlar etrafında hafif bir sarmalayıcı oluşturma fikri ortaya çıktı.
GridLion’ın Geliştirilme Süreci ve Engeller
Bir LLM’in yardımıyla, bir günde çirkin ama işlevsel bir prototipim vardı. Ancak birkaç gün kullandıktan sonra çok daha cilalı bir araca ihtiyaç duyduğumu fark ettim. Yaklaşık bir ay süren yoğun çalışmanın ardından, adını macOS Lion ile yaşadığı sorunlara atfen GridLion koyduğu uygulamayı tamamladı. Uygulamanın temel hedefleri şunlardı:
- Kolayca gezilebilir ve yeniden düzenlenebilir bir alan ızgarası.
- Yavaşlama olmaksızın hızlı ve kararlı performans.
- Ekran bazlı ayarlar (ızgara boyutu, kısayollar vb.).
İzin Engelleri ve Güvenlik Endişeleri
GridLion’ın global klavye kısayollarını yakalaması ve alanlarda gezinmesi için macOS’in ‘Erişilebilirlik’ iznine ihtiyacı var. Bu, makul bir güvenlik önlemi olsa da, macOS’teki izin onay akışı oldukça karmaşık. iOS’teki gibi basit bir ‘onayla’ yerine, kullanıcıların ayarları açıp belirli bir anahtarı bulup etkinleştirmesi ve birden fazla güvenlik uyarısını onaylaması gerekiyor.
Küçük alan önizlemeleri istendiğinde ise ‘Ekran ve Sistem Sesi Kaydı’ izni devreye giriyor. Bu izin, görünür olmayan pencerelerin/ekranların önizlemelerini oluşturmak için gerekli. Bu süreç, uygulamanın yeniden başlatılmasını gerektiren ve ‘uygulamalarınızın içeriğini kaydetmesine izin veriyor musunuz?’ gibi korkutucu bir diyalogla sonuçlanan daha da fazla adımdan oluşuyor. Bu durum, işletim sistemine entegre olması gereken bir işlevi dışarıdan yapmaya çalışmanın getirdiği bir sonuç. Geliştirici, bu tür diyalogların kullanıcı güvenini sağlamak için uygulamanın asla talep edilmedikçe ağa dokunmamasını (güncelleme kontrolü ve lisans doğrulama hariç) vurguluyor.
Uygulama Mağazası Dışı Satış ve Lemon Squeezy Deneyimi
GridLion, özel API’ları çağırdığı için App Store’da yayınlanamıyor. Bu nedenle geliştirici, Paddle, GumRoad ve Lemon Squeezy gibi ‘Merchant of Record’ hizmetlerini araştırdı. Lisans kodu API’si sayesinde Lemon Squeezy’ye yöneldi. Başlangıçta Stripe ile entegre olup dakikalar içinde satış yapabileceğini düşünse de, Lemon Squeezy’nin itibarını korumak adına geliştiricinin ‘gerçek değerde/kullanımda bir şeyler sattığını’ kanıtlamasını gerektiren daha uzun bir onay süreci bulunuyor. Bu süreçte ekran görüntüleri ve sosyal medya hesap kanıtları istendi. Bu tür gereklilikler, kötü niyetli kullanıcılardan korunmak için anlaşılır olsa da, yeni başlayanlar için engel teşkil edebiliyor.
LLM’ler ve Kullanıcı Deneyimi: Hız mı, His mi?
LLM’lerin kod yazma asistanı olarak kullanılması harika olsa da, kullanıcı arayüzü gibi ‘his’e dayalı alanlarda insan dokunuşunun vazgeçilmez olduğu görüldü. LLM’ler hızlı gemiler gibidir; belirli bir yöne doğru ayarlanırlar, ancak iyi bir geri bildirim döngüsü olmadan hedeften sapabilirler. LLM’ler sayesinde on yıl aradan sonra yerel Mac/iOS geliştirmesi yapmak kolaylaşsa da, on yıl önceki kendisinin aynı uygulamayı daha fazla içgörü kazanarak aynı sürede yapabileceği düşüncesi, bu alandaki gerçek kazanımları sorgulatıyor.
GridLion: Neredeyse Her İstediğimi Sunuyor
Geliştirici, GridLion’ı kendi bir numaralı kullanıcısı olarak tüm istediklerini eklemeye çalıştı. Ancak bazı sınırlamalar devam ediyor. Bir alanı bir ekrandan diğerine veya bir pencereyi bir alandan diğerine taşıma konusunda güvenilir API’lar bulunmuyor. Bu tür görevler için Mission Control’ü kullanmaya devam etmek gerekiyor. Ayrıca, uygulamaları yüklenirken belirli bir ızgara konumunda otomatik olarak görünmesini sağlama özelliği, orijinal macOS Spaces’te mevcut olsa da, GridLion için henüz geliştirilmedi. Birden çok VSCode penceresi gibi senaryolarda bu özelliğin nasıl çalışacağı belirsizliğini koruyor.
macOS’in Kendi Izgara Düzenine Kavuşması Dileğiyle
Tüm bunlara rağmen, geliştirici bir sonraki macOS sürümünde ızgara tabanlı alanların geri döndürüldüğünü duyurmaktan çok mutlu olacağını belirtiyor. Bu, işletim sisteminin yerleşik bir özelliği olmalı. Ancak o zamana kadar GridLion’a bir şans verebilirsiniz.

