HTML'i Android Uygulamasına Dönüştürmenin Üç Hızlı Yolu
Kısaca: Basit uygulamalar için en hızlı yol, bir web sitesini WebView içine sarmaktır; PWA, APK olmadan kurulum ve çevrimdışı mod sağlar; paketleyiciler (PWABuilder, AppsGeyser vb.) hazır APK/AAB dosyaları oluşturur. Aşağıda her yaklaşım için somut adımlar, kodlar ve ipuçları yer almaktadır.
Yaklaşımlara Genel Bakış ve Hangi Durumda Hangisini Seçmelisiniz
- WebView — Açılış sayfaları, dahili paneller ve köprüler aracılığıyla yerel API'lere erişim gerektiğinde uygundur. Hızlıdır, ancak bu sadece "uygulama içindeki bir tarayıcı"dır.
- PWA — Mobil web için en iyisidir: kurulum, önbellek ve çevrimdışı çalışma, hızlı güncellemeler sunar, ancak tüm yerel işlevlere doğrudan erişim sağlamaz.
- APK Paketleyiciler — Tam yerel geliştirme yapmadan PWA/web sitesini Play Store'da yayınlamanın hızlı yoludur; MVP'ler ve minimal entegrasyonlu iş uygulamaları için kullanışlıdır.
WebView: Android Studio ile Minimal Android APK
- Proje oluşturun: File → New → Empty Activity.
- res/layout/activity_main.xml dosyasına şunu ekleyin:
<WebView android:id="@+id/webview"
android:layout_width="match_parent"
android:layout_height="match_parent" />
- MainActivity içinde (Kotlin):
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
val webView: WebView = findViewById(R.id.webview)
webView.settings.javaScriptEnabled = true
webView.settings.domStorageEnabled = true
webView.webViewClient = WebViewClient()
webView.loadUrl("https://your-site.com")
}
}
- Ayarlar: Manifest dosyasına INTERNET iznini ekleyin; gerekirse dosya erişimi için izinleri etkinleştirin. Derleme: Build → Build Bundle(s)/APK → Build APK.
WebView içindeki bağlantıların harici tarayıcıda açılmaması için mutlaka WebViewClient ayarlayın.
WebView, XSS/gömülü içeriğe karşı savunmasızdır: Kaynağı ve sunucu tarafındaki CSP'yi kontrol edin.
PWA: Web Sitesini Uygulamaya Benzetme
- manifest.json:
{
"name": "Benim HTML Uygulamam",
"short_name": "MyApp",
"start_url": "/",
"display": "standalone",
"background_color": "#ffffff",
"theme_color": "#000000",
"icons": [{"src":"icon-192.png","sizes":"192x192"}]
}
- Service Worker (sw.js) — basit önbellek:
self.addEventListener('install', e => {
e.waitUntil(caches.open('v1').then(cache => cache.addAll(['/','/index.html','/main.css','/main.js'])));
});
self.addEventListener('fetch', e => {
e.respondWith(caches.match(e.request).then(r => r || fetch(e.request)));
});
- Kaydı etkinleştirin:
<script>
if ('serviceWorker' in navigator) navigator.serviceWorker.register('/sw.js');
</script>
- Chrome DevTools → Lighthouse ile test edin. PWA, "kur" düğmesi ve yerel uygulama benzeri davranış sağlar.
Yerel Geliştirme Olmadan HTML/PWA'yı APK'ya Paketleme
- PWABuilder ve benzeri araçlar, PWA manifest dosyası ve service worker'dan AAB/APK oluşturur. URL veya ZIP yüklersiniz, paketi alırsınız.
- Çevrimiçi derleyiciler (AppsGeyser vb.), index.html içeren bir ZIP yüklemenize ve ayarlarla simgeler içeren bir APK almanıza olanak tanır.
Yayınlama pratiği:
- Google Play Console'a kaydolun (25$).
- APK/AAB dosyasını imzalayın (Android App Bundle tercih edilir).
- Ekran görüntüleri, açıklama, gizlilik politikası ve 512×512 boyutunda simge hazırlayın.
- Paketi yükleyin ve incelemeyi bekleyin (1–7 gün).
Karşılaştırma: WebView vs PWA vs Paketleyiciler
| Yöntem | Çevrimdışı | Yerel Erişim | Google Play'de Yayınlama | Başlatma Süresi |
|---|---|---|---|---|
| WebView | Kısmen (önbellek üzerinden) | Evet (köprüler) | Evet | 30–120 dakika |
| PWA | Evet | Sınırlı (Web API) | Kısmen (paketleyiciler üzerinden) | 1–3 saat |
| APK Paketleyici | Kısmen | Servise bağlı | Evet | 10–60 dakika |
Sık Yapılan Hatalar
- HTTPS etkinleştirilmedi — PWA ve birçok Web API yalnızca HTTPS üzerinden çalışır.
- Service worker çok agresif önbellekleme yapıyor — kullanıcılar güncellemeleri göremiyor.
- WebView'da DOM storage/allowFileAccess yok — bazı siteler düzgün çalışmıyor.
- Manifest dosyası unutuldu veya simge yolları yanlış — PWA kurulabilir olarak algılanmıyor.
SSS
- Java/Kotlin bilmek gerekiyor mu? WebView ve paketleyiciler için hayır. Derin yerel entegrasyonlar için evet.
- APK nasıl imzalanır? keytool/jarsigner anahtarlarını kullanın veya Android Studio → Build → Generate Signed Bundle/APK yolunu izleyin.
- Push bildirim gönderilebilir mi? PWA, Web Push'u destekler; WebView — yerel köprü veya harici kütüphaneler aracılığıyla.
- Boyut nasıl küçültülür? JS/CSS dosyalarını minify edin, sıkıştırma kullanın (gzip, brotli), simgeleri optimize edin.
Gerekirse, hızlı test için çalışan service worker'a sahip hazır bir WebView Android proje şablonu ve PWA örneği gönderebilirim.