Kategoriler
Android Günlükleri

Android Günlükleri #1 : Web Sitesini Mobil Uygulamaya Dönüştürme-Kotlin

Bu serimizde satırlarca kod yazmadan mobil destekli web sitenizi kolaylıkla bir mobil uygulamaya nasıl dönüştürebileceğimizi göreceğiz.

WebView, uygulamamız içindeki bağlantıları, siteleri ve diğer web içeriklerini uygulama içerisinde görüntülememize olanak sağlayan bir elementtir. Bu elementin kullanımı oldukça basittir. Şimdi madde madde projemizi oluşturmaya başlayalım.

1)Android Studio’muzda yeni bir Kotlin projesi oluşturup empty activity seçeneğini seçelim.

2) Oluşturduğumuz projede xml kısmına gidip WebView elementimizi oluşturalım.

    <WebView

        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:id="@+id/mwebview"

/>

3) Elementimizi aktivite içinde View Binding kullanarak görüntüleyeceğiz bunun için projemize binding tanımlamalarımızı yapmamız gerekiyor. Bunun için build.gradle kısmına gidip

android {
    ...
    buildFeatures {
        viewBinding = true
    }
}

kodu ekleyip daha sonra sağ üst köşeden “Sync now” diyip kodumuzun senkronizasyonunu sağlıyoruz.

4) Daha sonra aktivitimize geri dönüp

private lateinit var binding: ActivityMainBinding


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        binding = ActivityMainBinding.inflate(layoutInflater)
        val view = binding.root
        setContentView(view)
        ...
            }
}

son tanımlamalarımızı da gerçekleştiriyoruz. Burda dikkat etmemiz gereken nokta aktivite ismimiz. Aktivite ismimiz ne ise binding tanımlamamızı ona göre yapmak zorundayız. Benim MainActivity olduğu için ActivityMainBinding şeklinde yaptım.

5) Artık binding üzerinden aktivitemizde tüm görünümlerimize rahatlıkla ulaşabiliriz. Şimdi görünümümüzü çağıralım ve gerekli kodlamaları yapalım.

        binding.mwebview.loadUrl("https://site Adınız/")
        
        val websetting= binding.mwebview.settings
       
        //webview ayarlarımızı kullanabilmemiz için
          
        websetting.builtInZoomControls=true
        
        //örneğin uygulamamıza zoom özelliği eklemek istiyorsak                                                                              kullanabiliriz.        
        websetting.javaScriptEnabled= true
        
        //Sayfamızda JS kodları varsa bu metodu etkinleştirmemiz   gerekiyor. Yoksa JS kodlarımız çalışmayacaktır.



        binding.mwebview.webViewClient= WebViewClient()
        // Bu sınıf sayfanızın yüklenmesi sürecini yönetmenize olanak tanır.

6) Uygulamamızda sayfalar arası gezinirken geri gitmek istediğimizde uygulamanın dışına çıkmak yerine bir önceki sayfaya dönmemizi sağlayacak olan metodlarımızı ekleyelim.

canGoBack daha önce sayfa ziyaret edip etmediğimizi sorgular eğer var ise goBack metoduyla geri dönüş işlemimizi gerçekleştirir.

7) Son olarak bu verilerimizi internet üzerinden çekeceğimiz için kullanıcıdan internet izni almamız gerekiyor. Bunun için Android Manifest dosyamızın içerisine

<uses-permission android:name="android.permission.INTERNET" />

iznini ekleyip uygulamamızı hazır hale getiriyoruz.

!!Android: Cleartext HTTP traffic not permitted hatası !!

Tüm bu işlemler sonucunda Android: Cleartext HTTP traffic not permitted hatası alıyorsanız Android Manifest dosyamızın altında

<application
      
        android:usesCleartextTraffic="true">

işlemini gerçekleştirmek sorununuzu çözecektir.