Telegram ekosisteminde mini uygulamaların ve oyunların çalışma mekanizması
Telegram'daki mini uygulamalar (Mini Apps) ve oyunlar, Web Apps teknolojisi aracılığıyla doğrudan mesajlaşma uygulamasının arayüzü içinde başlatılan web siteleri gibi çalışır. Ayrı dosyaların kurulmasını gerektirmezler: kod, dahili bir tarayıcıda (webview) yürütülür ve geliştiricinin sunucusu ile mesajlaşma uygulamasının kendisi arasında güvenli bir iletişim kanalı üzerinden veri alışverişi yapar. Kullanıcı, sohbetten ayrılmadan çevrimiçi mağazalardan 3D oyunlara kadar karmaşık işlevlere erişim sağlar.
Temel fark: Yalnızca metin veya düğmeler aracılığıyla iletişim kuran geleneksel botlardan farklı olarak, mini uygulamalar mobil cihazlar ve masaüstü için uyarlanmış tam teşekküllü bir grafik arayüz sunar.
Teknik temel: Web Apps API
Telegram'daki tüm modern etkileşimli çözümlerin temelinde Telegram Web Apps API yer alır. Bu, bir web sayfasının mesajlaşma uygulaması içinde çalıştırıldığını "anlamasını" ve onunla etkileşime girmesini sağlayan JavaScript yöntemlerinden oluşan bir settir.
Başlatma nasıl gerçekleşir
- Tetikleme: Kullanıcı bir bot sohbetindeki bir düğmeye,
t.me/...bağlantısına tıklar veya ekleme menüsünden (ataç) bir öğe seçer. - Başlatma: Bir webview penceresi açılır. Web sayfası
telegram-web-app.jsbetiğini yükler. - Kimlik Doğrulama: Uygulama, kullanıcı izin verirse kullanıcı hakkındaki verileri (ID, ad, arayüz dili) ve tema ayarlarını (koyu/açık) otomatik olarak alır.
- Etkileşim:
window.Telegram.WebApp.sendData()yöntemi aracılığıyla uygulama, çalışma sonucunu bir mesaj olarak bota geri gönderebilir.
Geliştiricilerin iOS veya Android için yerel kod yazmasına gerek yoktur. Uygulama penceresinde doğru şekilde görüntülenecek herhangi bir teknoloji yığınında (React, Vue, saf HTML/JS) duyarlı bir web sitesi oluşturmak yeterlidir.
Geliştirme mimarisi
Kaliteli bir mini uygulama oluşturmak, üç katmanlı bir mimarinin takip edilmesini gerektirir:
| Bileşen | Amaç | Teknolojiler |
|---|---|---|
| Frontend | Görsel kısım, arayüz, animasyonlar. Dokunmalara anında tepki vermelidir. | HTML5, CSS3, JavaScript/TypeScript, Canvas (oyunlar için) |
| Backend | Mantık, veri depolama, ödeme işleme, varsa blok zinciri ile etkileşim. | Node.js, Python, Go, veritabanları (PostgreSQL, Redis) |
| Entegrasyon | Web sitesi ile mesajlaşma uygulaması arasındaki bağlayıcı halka. Düğmelerin, menülerin ve erişim haklarının yapılandırılması. | Telegram Bot API, Web Apps API |
Uygulama HTTPS protokolü üzerinden çalışmalıdır. Bu zorunlu bir güvenlik gerekliliğidir: tüm veriler, kullanıcının cihazı ile geliştiricinin sunucusu arasında iletilirken şifrelenir.
Oyunlar ve Araçlar: Fark nedir?
Teknik olarak hem oyunlar hem de araçlar (mağazalar, hizmetler) aynı altyapı üzerine inşa edilse de, bunların uygulanmasına yönelik yaklaşım farklılık gösterir.
Oyunlar (GameFi, Arcade, Quiz)
- Grafikler: 2D/3D grafiklerin render edilmesi için genellikle
<canvas>veya hazır motorlar (Phaser, Unity WebGL) kullanır. - Performans: Telefonun kaynakları sınırlı olduğu ve uygulama başka bir uygulamanın içinde çalıştığı için optimizasyon kritik öneme sahiptir.
- Para Kazanma: Telegram Stars aracılığıyla oyun içi satın almalar, reklamlar veya tokenizasyon (kripto oyunlar).
- Sosyallik: Lider tablolarının, arkadaş davetlerinin ve meydan okumaların aktif kullanımı.
Araçlar (Mağaza, Hizmet, Araç)
- Arayüz: "Yerel" görünmesi için Telegram'ın yönergelerini (tema renkleri, sistem yazı tipleri) sıkı bir şekilde takip eder.
- Navigasyon: Yerel kontrol öğelerini kullanır (ana düğme
MainButton, klavye). - Veriler: İçeriğin hızlı yüklenmesine ve kişisel verilerin veya ödeme bilgilerinin güvenli iletimine odaklanır.
Sık yapılan hata: Karmaşık masaüstü arayüzünü mini uygulamaya kopyalamaya çalışmak. Telefon ekranı sınırlıdır ve uygulama penceresi ekranın tamamını kaplamaz (özellikle mobil cihazlarda). Arayüz minimal ve dikey olmalıdır.
Popüler kullanım senaryoları
Geliştiriciler, standart bot düğmelerinin yetersiz kaldığı belirli görevleri çözmek için mini uygulamaları entegre eder:
- Sohbet içinde E-ticaret. Tarayıcıya geçiş yapmadan ürün kataloğunu görüntüleme, beden/renk seçme, sipariş oluşturma ve ödeme yapma.
- Eğitim platformları. Anında sonuç kontrolü ve sertifika verilmesiyle interaktif kurslar, testler.
- Finans ve kripto cüzdanları. Mesajlaşma uygulamasının arayüzü içinde bakiye yönetimi, token takası, staking.
- Rezervasyon hizmetleri. Sinemada koltuk seçimi, doktor randevusu alma veya salon şemasıyla restoranda masa rezerve etme.
- Hiperkazual oyunlar. Genellikle referans programlarıyla entegre edilen, zaman öldürmek için basit arcade oyunları.
Optimizasyon ve UX için ipuçları
Uygulamanın hızlı çalışması ve kullanıcılar tarafından beğenilmesi için şu kuralları izleyin:
- Yüklenme hızı. Sayfa boyutu minimum olmalıdır. Görüntüler ve betikler için tembel yükleme (lazy loading) kullanın. Kullanıcı pencerenin açılmasını 1-2 saniyeden fazla beklememelidir.
- Duyarlılık. Arayüz, farklı ekran boyutlarına ve pencere oranlarına (tabletlerde pencere daha geniş, telefonlarda daha dar) doğru şekilde ölçeklenmelidir.
- Tema desteği. Telegram'dan tema parametrelerini (
theme_params) mutlaka okuyun. Kullanıcıda koyu tema etkinse, uygulamanız da koyu renkli olmalıdır, aksi takdirde parlak beyaz arka plan gözleri yorar. - Geri bildirim. Kullanıcının her eylemi (düğmeye basma, form gönderme) görsel veya dokunsal bir yanıtla (titreşim için
HapticFeedback) desteklenmelidir.
Geliştirme sırasında sık yapılan hatalar
- Mobil kısıtlamaların göz ardı edilmesi. Tek bir ekrana çok fazla öğe yerleştirilmeye çalışılması, bunun sonucunda arayüzün okunaksız hale gelmesi.
- Ağ hatalarının işlenmemesi. Kullanıcının interneti kesilirse, uygulama sadece "donmamalıdır". Bağlantı durumu hakkında anlaşılır mesajlar gösterilmelidir.
- Moderasyon kurallarının ihlal edilmesi. Yasaklı içerik kullanımı, kullanıcıları kandırma (tık tuzağı) veya uygulamanın gerçek işlevini gizlemeye çalışma botun engellenmesine yol açabilir.
- Karmaşık yetkilendirme. Bu veriler zaten Telegram'da mevcutken, mini uygulama içinde e-posta veya telefon üzerinden kayıt yapılmasının istenmesi. Bu, dönüşümü düşüren gereksiz bir adımdır.
SSS
Mini uygulamayı resmi katalogda yayınlamak gerekir mi? Hayır, katalogda (@appcenter) yayınlamak zorunlu değildir. Uygulama doğrudan bağlantılar, botlarınızdaki düğmeler veya reklamlar aracılığıyla dağıtılabilir. Ancak kataloga girmek ek organik trafik sağlar.
Mini uygulama içinde ödeme kabul edilebilir mi? Evet, Telegram ödeme sistemlerinin (Stripe, ЮKassa vb.) entegrasyonunu ve dijital ürün ve hizmetlerin satışı için kendi para birimi Telegram Stars'ı destekler.
Mini uygulamalar Telegram'ın eski sürümlerinde çalışır mı? Web Apps özelliği, güncel istemci sürümlerinde mevcuttur (yaklaşık 2022 yılında yayınlanan 8.0 ve üzeri sürümlerden itibaren). Çok eski sürümlerde uygulama açılmayabilir, bu nedenle istemci sürümünü kontrol etmeniz veya bir alternatif (web sürümü) sunmanız önerilir.
Veriler uygulamadan sohbete nasıl aktarılır?
Telegram.WebApp.sendData(data) yöntemini kullanın. Veriler bota normal bir mesaj olarak gelir; bu mesaj bir betik ile işlenebilir ve kullanıcıya yanıt verilebilir.