Uygulama geliştirme

Mobil arayüz tasarımının ilkeleri

Mobil arayüzü tek bir başparmak sürer; üstelik kullanıcı ekranı çoğu zaman ayakta ve dikkati dağınık tutar, dolayısıyla her tasarım kararı bu iki kısıttan geçmek zorundadır. Onu dört şey kurar: başparmak erişimi, hiyerarşi, geri bildirim ve tutarlılık; ve sayısı olan yalnızca birincisi ile ikincisinin bir bölümüdür.

  • Ders 3 / 8
  • Başlangıç
  • Ücretsiz, kayıt yok

Mobil arayüzün dört sütunu

İlk sütunun yayımlanmış sayıları vardır. Diğer üçünün yoktur ve uygulamanın kendisine bakılarak denetlenir.

Kullanılabilir bir mobil arayüztek başparmakla, hareket hâlinde, her an kesilebilir
  • Başparmak erişimi

    Birincil eylem rahat bölgede. Hedef boyutu WCAG e göre en az 24 e 24 CSS pikseli, Android rehberine göre 48 e 48 birim.

  • Hiyerarşi

    Her ekranda tek birincil eylem. Küçük bir ekranda eşit ağırlıkta iki eyleme yer yoktur.

  • Geri bildirim

    Sunucu geç yanıtlasa bile dokunuşun anında işareti. Yoksa düğmeye iki kez basılır.

  • Tutarlılık

    Hata, yükleniyor ve boş durumlar her ekranda aynı görünür.

Dördünü de sağlamak uygulamanın kullanılacağını garanti etmez. Uygulamanın yaptığı şeye ihtiyaç yoksa kusursuz bir arayüz de yardım etmez.

Son kontrol: Bu dersteki bilgiler ve araç adları bu tarihte kaynaklarıyla yeniden doğrulanır.

Mobil arayüz masaüstünden nerede ayrılır?

Üç noktada ve üçü de teknik değil. Birincisi girdi: fare imleci bir nokta, başparmak ise yumuşak bir leke; farenin tam isabet ettirdiğini başparmak yarı yarıya ıskalar. İkincisi duruş: masaüstü kullanıcısı oturur, mobil kullanıcı genellikle yürür ya da bekler. Üçüncüsü kesinti: telefonda her an bir arama ya da bildirim gelir, kullanıcı geri döner ve nerede kaldığını çıkarması gerekir.

Mobil arayüz aynı görünür ve dokunulur katmandır, ama bu üç kısıt altında. Gerisi buradan çıkar: neden her ekranda tek birincil eylem, neden ana düğmeler aşağıda, neden form kısa, neden yükleniyor durumu önemli.

İşi dört sütun yapar. Başparmak erişimi, telefonu elde kaydırmadan neye basılabileceğini söyler. Hiyerarşi, gözün ilk nereye düşeceğini söyler. Geri bildirim, dokunuştan sonra ekranın bir şeyin olduğunu nasıl gösterdiğini söyler. Tutarlılık, bir kalıbın her ekranda aynı kaldığını söyler.

Dersin kalanı net olsun diye bir şeyi baştan söyleyelim: arayüz tasarımının ilkeleri mobilde de geçerlidir ve onları burada tekrarlamıyoruz. Temeli okumadıysanız başlangıç noktası kullanıcı arayüzü tasarımının ilkeleridir; bu ders yalnızca mobilin eklediğini ya da değiştirdiğini anlatıyor.

Mobil arayüz ilkeleri: başparmak, hedef boyutu ve RTL

Başparmak nereye ulaşır ve hedef ne kadar olmalı?

Telefonu tek elle tutun ve kaydırmadan başparmağınızı döndürün. Ekran dört bölgeye ayrılır: elin bulunduğu tarafta aşağıdaki rahat bölge, ortada ve üste yakın uzanma bölgesi, telefonu elde kaydırmadan ulaşamadığınız uzak köşe ve büyük telefonlarda tek elle fiilen erişilemeyen üst çubuk. Bir ekranın birincil eylemi ilk bölgeye aittir; silme gibi tehlikeli bir eylem ise bilerek daha zor basılan bir yere gider.

Hedef boyutu ise tahmin işi değildir, çünkü sayısı vardır ve sayılar yayımlanmıştır. WCAG 2.2, 2.5.8 ölçütünde, işaretçi girdileri için hedefin en az 24 e 24 CSS pikseli olduğunu söyler; kendi saydığı istisnalarla: çevresinde yeterli boşluk bulunan daha küçük bir hedef, aynı işlevin sayfada başka bir yolla yapılabilmesi ya da hedefin bir cümlenin içinde olması. Android in kendi erişilebilirlik rehberi daha büyük bir sayı verir: en az 48 e 48 yoğunluktan bağımsız piksel, iki hedef arasında en az 8 birim ayrım ve 48 birimin her ekranda yaklaşık dokuz fiziksel milimetreye denk geldiği açıklaması.

Aynı Google sayfasında sayının kendisinden daha işe yarar bir nokta var: dokunma hedefi öğenin görsel sınırlarının dışına taşar. 24 birim genişliğinde görünen bir simge, çevresindeki dolgu sayesinde 48 birimlik bir hedef olur. Yani düğmeyi büyütüp çirkinleştirmeniz gerekmez; dokunuşu dinleyen alanı büyütmeniz gerekir.

Ve herkesin aktardığı sayı hakkında bir uyarı. "Apple 44 e 44 punto diyor" cümlesi, mobil tasarım üzerine her Türkçe ve İngilizce yazıda tekrarlanır. Bugün Apple ın İnsan Arayüzü Kılavuzu sayfalarını taradık: yerleşim sayfası, erişilebilirlik sayfası, düğmeler sayfası, hareketler sayfası. Bu sayı hiçbirinde asgari dokunma hedefi olarak yazılı değil. 44 puntoyu gördüğümüz tek yer visionOS düğme boyutları tablosuydu ki o başka bir şey. Yani sayı yanlış demiyoruz; ona canlı bir kaynak bulamadık ve Apple a söylemediği bir sözü yakıştırmaktansa bilmiyoruz demeyi yeğleriz. Dayanabileceğiniz sayılar yukarıdaki ikisidir.

Başparmağın gözünden ekranın dört bölgesi

  • Rahat bölge

    Ekranın altı, elin bulunduğu tarafta. Birincil eylemin ve sekme çubuğunun yeri.

  • Uzanma bölgesi

    Orta ve üste yakın. İçerik için uygun, sık kullanılan bir düğme için değil.

  • Uzak köşe

    Ulaşmak telefonu elde kaydırmayı gerektirir. Silme gibi tehlikeli bir eylem için uygun yer.

  • Üst çubuk

    Büyük telefonda tek elle fiilen erişilemez. Başlık evet, sık kullanılan düğme hayır.

Tek el

Bu ayrım telefonun tek elle tutulduğunu varsayar. İki elle yazan bir kullanıcının haritası farklıdır ve hangisi olduğunu bilmezsiniz.

Platform kuralını mı izlemeliyim, kendi tasarımımı mı?

Kısa yanıt: kullanıcının içinde hareket ettiği her şey platforma, markanız olan her şey size aittir. Geri düğmesinin davranışı, kenardan kaydırma hareketi, sekme çubuğunun yeri, klavyenin davranışı ve tarih seçicinin biçimi, kullanıcınızın uygulamanızı kurmadan önce bin kez karşılaştığı şeylerdir. Bunları değiştirirseniz yaratıcı olmuş olmazsınız; kullanıcının zaten bildiği bir şeyi elinden almış olursunuz.

Buna karşılık renk, illüstrasyon, metnin tonu, tanıtım ekranı ve ürün kartı sizindir ve orada herkese benzemek size hiçbir şey kazandırmaz. Pratik sınır basit: bir şeyi değiştirmek kullanıcıyı onu yeniden öğrenmeye zorluyorsa değiştirmeyin.

Yüklenicilerin genelde geç söylediği bir nokta: platform kuralına uymak daha pahalı değil, daha ucuzdur. Standart Android ve iOS bileşenleri sistem yazı boyutuyla, koyu modla, ekran okuyucuyla ve sağdan sola yönle zaten çalışır. Aynı bileşenin elle yapılmış kopyası bunların hepsini yeniden kurmak zorundadır ve genellikle kurmaz. Gerçekten özel bir bileşene ihtiyacınız varsa yalnızca mutlu duruma değil, bütün bu durumlara bütçe ayırın.

Ve satış sayfalarında pek görmediğiniz bir konum: bütçeniz darsa önce kuralları düzgün uygulayın, görsel ayrışmayı sonra hedefleyin. Arayüzü sıradan ama doğru olan bir uygulama, ayrıksı ama kafa karıştırıcı olandan daha çok kullanılır.

Hangi kararlar platforma, hangileri size ait

Platform karar verir

  • Geri davranışı ve kenardan kaydırma hareketi
  • Sekme çubuğunun yeri ve gezinme yapısı
  • Klavye davranışı ve tarih seçici
  • Koyu mod ve sistem yazı boyutu
  • Yerleşimin sağdan sola aynalanması

Siz karar verirsiniz

  • Renk, illüstrasyon ve ürün kartının biçimi
  • Metnin tonu ve bölüm adları
  • Tanıtım ekranı ve ilk kullanım yolu
  • Boş durum ve içinde yazılan sözler
  • Bildirimde yazdığınız şey

Burada kırmızı çarpı yok, çünkü iki sütun da yanlış değil. Hata, bir maddeyi bir sütundan diğerine taşımaktır.

Farsça bir ekran telefonda nerede bozulur?

Sağdan sola tek satır CSS ile bitmez ve çoğu Farsça uygulama tam burada aksar. Apple ın İnsan Arayüzü Kılavuzu sağdan sola için ayrı bir sayfa taşır ve kurallarının birkaçı pratikte tam da bizim tosladığımız yerlerdir.

Önce sayılar. Apple, belirli bir sayının içindeki rakamların sırasının asla ters çevrilmediğini söyler: bir telefon numarası, bir kart numarası ve 541 sayısı her yönde aynı sırayı korur. Ama ilerleme ya da sayım gösteren rakamların sırası ters çevrilmelidir, çünkü denetimin kendisi aynalanmıştır. Bu iki kural birbirine benzer ve pratikte birbirinin tersidir.

İkincisi paragraf yönü. Apple ın kuralı, üç satır ve üzeri bir bloğun sayfa yönüne değil kendi diline hizalanmasıdır; böylece Farsça bir ekrandaki İngilizce paragraf sola hizalı kalır, aksi hâlde her satırın başı kaybolur. Bir ve iki satırlık metin ise sayfa yönüyle gider.

Üçüncüsü simgeler. Geri oku Farsçada sağı göstermelidir, ama saat, logo ve onay işareti asla aynalanmaz; gerçekten fiziksel bir yönü gösteren bir simge de öyle. Apple başka yerde pek yazılmayan bir noktaya bile değinir: Arapça ve İbranice metin, büyük harfi olmadığı için büyük harfli Latin metnin yanında fazla küçük görünür ve yaklaşık iki punto büyütmek dengeyi geri getirir. Aynısı Farsça için de geçerlidir.

Dördüncüsü, masaüstünde görünmeyip telefonda hemen ortaya çıkan bir şey: sayısal klavye. Girdiniz doğrulamadan önce Farsça rakamları Latin rakamlara çevirmiyorsa, numarasını Farsça klavyeyle yazan kullanıcı geçersiz numara mesajı alır ve nedenini bilemez. Bu bir kullanıcı hatası değil, tasarım hatasıdır.

Yalnızca Farsça bir telefon ekranında kendini gösteren şeyler

Telefonda Farsça ekran gözden geçirme sayfasısağdan sola

Bunları kontrol edin

  • Numara girdisi doğrulamadan önce Farsça rakamları çeviriyor
  • Telefon ve kart numaralarının rakam sırası ters çevrilmemiş
  • İlerleme çubuğu ve kaydırıcı aynalanmış
  • Farsça ekrandaki İngilizce paragraf sola hizalı kalmış
  • Uygulama en büyük sistem yazı boyutunda hiçbir şey kesilmeden açılıyor

Bunları yapmayın

  • Saati, logoyu ve onay işaretini aynalamak
  • Yalnızca sağdan sola için ikinci bir stil dosyası yazmak
  • Sık kullanılan bir düğmeyi uzak üst köşeye koymak
  • Sistemdeki yeterliyken özel bir tarih seçici yapmak

Bunların hiçbirini otomatik bir araç bulmaz. Telefonu Farsça okuyan birine verin ve bir kez kayıt olmasını isteyin.

İlk taslakta kimsenin çizmediği durumlar

Veri çeken her ekranın en az beş durumu vardır ve ilk tasarım genellikle bunlardan birini gösterir. Henüz hiçbir şey yokken boş durum. Gelirken yükleniyor durumu. Gelmediğinde hata durumu. Mobilde sık, masaüstünde seyrek olan çevrimdışı durumu. Ve Figma da çizilen resim olan dolu durum.

Geri bildirim tam da budur. Bir dokunuştan sonra mobil kullanıcı, sunucu iki saniyede yanıt verse bile, dokunuşun kaydedildiğine dair bir işareti saniyenin küçük bir kesrinde görmelidir. O işaret olmadan aynı düğmeye tekrar basılır ve elinizde mükerrer bir sipariş olur. Çevrimdışı, telefonda uç bir durum değil gerçek bir durumdur: asansör, metro, otopark.

Tutarlılık da burada sayılabilir. Hata göstermek için tüm uygulamada tek bir kalıp seçin ve her yerde onu kullanın. Bir ekran hatayı formun üstünde, bir başkası alanın altında, üçüncüsü yüzen bir mesajın içinde gösterirse kullanıcı hatayı her seferinde aramak zorunda kalır.

Ve aslında ilk yapılacak iş olan son madde: uygulamayı kendi telefonunuzda, sistem yazı boyutu büyütülmüş hâlde ve güneş ışığında açın. Bu derste sayılan sorunların çoğu, herhangi bir resmî incelemeden çok önce, o bir dakikada ortaya çıkar.

Yapay zekayla hızlı yol

İnsanların saatlerini verdiği ve modellerin gerçekten iyi olduğu mekanik bir iş var: bir stil dosyasındaki fiziksel yön özelliklerini mantıksal olanlara çevirmek, böylece arayüz ikinci bir dosya olmadan sağdan sola çalışsın. Birkaç durum dışında yargı gerektirmez; bu yüzden burada Gemini Flash sınıfından hızlı ve ucuz bir model yeter, ileri düzey bir model israftır. Güncel tercihimiz sitenin yapay zeka bölümünde. Yargı adımını siz yaparsınız ve aşağıda adı geçiyor.

  1. Aday listesini gözle değil tek bir grep ile çıkarın. Kalıp: margin-left, margin-right, padding-left, padding-right, border-left, border-right, tek başına left ve right ve değeri left ya da right olan text-align.
  2. Modele grep çıktısını satır numaralarıyla verin ve aşağıdaki tarifi çalıştırın. Dosyanın tamamını vermeyin; yalnızca eşleşen satırlar gerekir ve yanıt daha kısa ve daha isabetli döner.
  3. Yanıtın üçüncü sütunu yargı adımıdır ve sizindir: modelin fiziksel kalmalı diye işaretlediği her satırı onaylayın ya da reddedin. Simgeler ve döndürülmüş oklar genelde o sütunda olur.
  4. Değişiklikleri uygulayın ve ekranı yalnızca Farsçada değil, iki yönde de açın. Doğru bir dönüşüm İngilizceyi de olduğu gibi bırakır; soldan sağa görünümde bir şey yer değiştirdiyse yönünü değil konumunu değiştirmişsinizdir.

Kopyalamaya hazır şablon

Bu satırlar bir CSS dosyasından ve her biri fiziksel bir yön özelliği taşıyor. Amaç, arayüzün ikinci bir dosya yazılmadan sağdan sola çalışması.

Her satır için tam olarak üç sütun ver ve fazladan hiçbir açıklama yazma:
1) Satır numarası ve satırın kendisi, değiştirilmeden.
2) Varsa önerilen mantıksal karşılık: margin-inline-start, margin-inline-end, padding-inline-start, padding-inline-end, border-inline-start, border-inline-end, inset-inline-start, inset-inline-end ve değeri start ya da end olan text-align.
3) Tek kelime: "mantıksal" ya da "fiziksel kalsın". Gerçek bir fiziksel yönü gösteren her satır, örneğin rotate ile oka dönüştürülmüş bir kenarlık ya da anlamı "sağa" olan bir simge, "fiziksel kalsın" almalı.

Kurallar:
- Emin olmadığın satıra "fiziksel kalsın" koy ve gerekçeyi üçüncü sütunda en fazla on kelimeyle yaz.
- Hiçbir satırı silme ve yeni satır ekleme.
- Renk, boyut ve sınıf adları hakkında görüş bildirme.

Satırlar:
{grep çıktısı}

Çıktıya güvenmeden önce: Üçüncü sütuna inanmayın, okuyun. Model, hangi kenarlığın rotate ile oka dönüştürüldüğünü ve hangisinin süs çizgisi olduğunu bilmez; çünkü dosyadan tek bir satır görmüştür. Aynı grep i bu sitenin kendi stil dosyasında çalıştırdık ve tam olarak bir vaka fiziksel kalmak zorundaydı; onu bulmak modelin değil insanın işiydi. Bitmiş dönüşümü sonunda iki yönde de gözle kontrol edin.

Bu işte yapay zeka

Mobil arayüz tasarımında yapay zeka iki işte işe yarar, birinde yaramaz. Arayüz kodu üzerindeki mekanik geçişlerde işe yarar: yukarıdaki yön dönüşümü gibi ya da ilk taslakta kimsenin çizmediği bir bileşenin boş, yükleniyor ve hata durumlarını yazmak gibi. Bir ekranın birincil eyleminin hangisi olduğuna karar vermekte işe yaramaz; o yanıt bir tasarım kalıbından değil işin kendisinden gelir.

Gerçekten işe yarayan araçlar

  • Gemini Stil satırları üzerinde mekanik bir geçiş için uygun maliyetli bir seçim ve görselleri de okuyor. Google'ın kendi sayfası Gemini web uygulamasının 230'dan fazla ülke ve bölgede çalıştığını söylüyor ve İran o listede yok.
  • Claude Bir bileşenin unutulan durumlarını kod olarak yazdırmak istediğinizde daha iyi bir yanıt. İran, Anthropic'in desteklenen ülkeler listelerinin hiçbirinde yok; bunu Anthropic'in kendi sayfasında okuduk.
  • Accessibility Scanner Yapay zeka değil ve bilerek burada: bir Android telefonda dokunma hedefi boyutunu gerçekten ölçüyor. Google'ın kendi sayfası, aracın TouchDelegate kullanımını yalnızca Android 10 ve sonrasında hesaba katabildiğini söylüyor; eski sürümlerde büyütülmüş bir hedefi yine de bildirebilir.

Nerede geri teper

Buradaki asıl risk intihal değil, hak edilmemiş özgüvendir. Model bir görüntüden kontrast oranı hesaplamaz ve dokunma hedefinin gerçek boyutunu da bilmez; çünkü o boyut, resimde değil kodda duran dolguya bağlıdır. Yine de ikisi hakkında da kesin bir görüş bildirir. W3C'nin kendi Easy Checks rehberi otomatik incelemenin insan incelemesinin yerini tutmadığını söyler ve o cümle bir dil modelinden daha kesin araçlar için yazılmıştı.
İkinci risk mobile özgü: bir modelle bütün bir ekran tasarımı üretmek, size bin başka uygulamaya benzeyen bir çıktı verir ve mobilde bunun bedeli webdekinden ağırdır, çünkü kullanıcı uygulamanızı otuz başkasının simgesinin yanında görür. Konumumuz: modeli görsel karara değil, koda ve durumlara koyun. Her aracın İran'dan nasıl ödenebileceği için satın alma rehberine bakın.

Kaynaklar: W3C: Understanding SC 2.5.8 Target Size (Minimum) W3C WAI: Easy Checks Android Accessibility Help: Touch target size Anthropic: supported countries Google: where Gemini Apps are available

Bu tavsiyenin sınırı

Bu ders, hareket hâlinde tek elle kullanılan bir uygulama hakkındadır. Tablet için, bir stand üzerinde duran bir uygulama için ve kullanıcısı eldiven takan endüstriyel bir uygulama için başparmak haritası anlamsızdır ve hedefin daha isabetli değil daha büyük olması gerekir. İkincisi, bu sayfadaki sayıların hiçbiri güzellik hakkında bir şey söylemez; her ölçüyü tutturan bir ekran yine de kötü olabilir. Üçüncüsü, oyunlardan hiç söz etmedik: mobil oyunlarda bu dersteki kuralların çoğu bilerek çiğnenir ve o alanın kendi kuralları vardır.

Kendi işimizden

Kendi sitemizdeki tek bir görsel karar, mobil menüye elli piksel genişliğe mal oldu ve o kararı masaüstüyle sınırlamak zorunda kaldık. rgb.ir başlık çubuğunda backdrop-filter ile kurulmuş bir cam etkisi var ve main.css içinde yalnızca 1101 pikselin üstünde açık. Gerekçesi o bloğun yorumunda yazılı ve ölçülü: backdrop-filter öğeyi bir containing block hâline getiriyor, böylece position: absolute ve inset-inline: 0 olan mobil açılır menü, sayfanın tam genişliği yerine çubuğun içine yapışıyor. Sayı yorumda duruyor: 390 piksel 340 oldu.
İkinci örnek aynı türden. Bu sitede üç ve daha çok sütunlu tablolar 780 pikselin altında kartlara dönüşüyor ve seçimleri JavaScript in eklediği bir sınıfla değil, CSS teki :has(thead th:nth-child(3)) ile yapılıyor. Gerekçesi tam da bu derste geçen geri bildirim noktası: yerleşim bir betiği beklerse sayfa ilk boyamadan sonra kayar. Her hücrenin etiketini JavaScript yazıyor, ama yüksekliği min-height ile önceden ayrılmış; böylece betik çalışmadan önce ve sonra yükseklik aynı kalıyor.

Gerçek devam soruları

Mobil arayüz tasarımı duyarlı web tasarımıyla aynı şey mi?

Hayır, ama çok örtüşürler. Duyarlı tasarım, aynı sayfanın farklı genişliklerde doğru çıkması demektir ve çoğunlukla bir yerleşim sorunudur. Mobil arayüz tasarımı ise yalnızca telefonda var olan şeyler hakkında karar vermek demektir: başparmak, dokunma, kesinti, çevrimdışı olmak.

Birincil düğme ekranın üstünde mi altında mı olmalı?

Basılması gerekiyorsa altta. Büyük bir telefonun üstü tek elle erişilemez ve başlık ile bilgi için daha uygundur. İstisna, hesabı silmek gibi kolay basılmaması gereken bir düğmedir.

Uygulamayı sağdan sola yapmak için arayüzün ikinci bir sürümü gerekir mi?

Hayır ve yaptıysanız muhtemelen yanlış bir yola saptınız. Standart Android ve iOS bileşenleri kendilerini aynalar, webde de mantıksal özellikler aynı işi görür. Gerçekten geriye kalan, birkaç özel durumu karara bağlamaktır: hangi simge aynalanır, hangi sayı sırasını korur ve hangi paragraf kendi diline hizalanır.