Android
Çocuklar İçin Uygulama Geliştirilirken Dikkat Edilmesi Gerekenler
Çocukların el ayak koordinasyonları yetişkin insanlara göre daha az olduğu için çocuklar geniş bir kullanım alanı isterler. Telefonlardaki bu kullanım alanlarıda ekranlardır. Telefon ekranlarını büyütmenin bir kaçyöntemi var. Bunlardan bir tanesitelefonu dikey kullanmak yerine yatay ku...
Çocukların el ayak koordinasyonları yetişkin insanlara göre daha az olduğu için çocuklar geniş bir kullanım alanı isterler. Telefonlardaki bu kullanım alanlarıda ekranlardır.
Telefon ekranlarını büyütmenin bir kaç yöntemi var. Bunlardan bir tanesi telefonu dikey kullanmak yerine yatay kullanmaktır. Bir Activity'yi vertical yerine horizontal olarak kullanmak için AndroidManifest.xml dosyası içerisinde aşağıdaki değişikliği yapmak yeterlidir. Böylece daha verimli bir ekran boyutları elde edebiliriz. Eğer uygulamanız dikeyde de geniş bir yer kaplıyorsa scrollView kullanımı ile bu genişliği sağlayabiliriz.
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.erdinulger.mathforkids">
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity android:name=".MainActivity" android:screenOrientation="landscape">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Geniş bir alan kullanımı sağlamak için bir diğer seçenek ekran üzerinde bulunan barları kaldırmaktır. Bu barlar 2 tanedir. 1. barı tema bilgisini değiştirerek gösterimi engelleyebiliriz. 2. bar ise saat ve pil yüzdesinin gösterildiği bardır. Bu barıda kaldırarak ekrandaki kullanılabilir alanı daha da genişletmiş oluruz. Eğer bir oyun, yada oyunlaştırılmış bir uygulama projesi gerçekleştiriyorsak, window title olarak belirttiğimiz saat ve telefon pil yüzdesini gösteren alanında kaldırılması daha uygundur. Kullanıcı bu uygulama üzerinde çok vakit kaybetmişim yada telefonun şarjı birazdan bitecek gibi kaygılardan arındırmış olur. Bu window title bilgisini de aşağıdaki tanımlar ile kaldırabiliriz.
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowFullscreen">true</item>
</style>
</resources>
Çocukların heyecanlandıran uygulamaya bağlanmasını sağlayan bir başka seçenek ise arka plan resimleridir. Renkli ve canlı resimler çocukların hep ilgisini çekmiştir. Biz de uygulamalarımızın daha çok kullanılması ve daha çok sevilmesini istiyorsak renkli arka plan resimleri kullanmalıyız. Arka plan resimlerini aşağıdaki yöntemi kullanarak değiştirebilir.
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/bg"
android:orientation="vertical"
tools:context=".MainActivity">
</FrameLayout>
Uygulamalarımızı güzel gösteren bir diğer seçenek ise güzel animasyonlardır. Kayan, takla atan, dönerek yer değiştiren yazılar veya resimler çocukların ilgisini çeker. Uygulama üzerindeki imageların bile standart olarak gösterilmesindense küçük resim boyutundan büyüyerek gösterilmesi uygulamaya bir farklılık kadar. Bu özellikleri bir çok yöntemle yapabiliriz. Resimlerin büyüyerek gösterilmesi, yer değiştirmesi, yuvarlanması ve saydamlığının değiştirilmesiyle ilgili örnek uygulamaları aşağıda paylaşıyorum.
package com.erdinulger.mathforkids;
import android.animation.AnimatorSet;
import android.animation.ObjectAnimator;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageView;
public class Main2Activity extends AppCompatActivity {
ImageView view;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
view = (ImageView)findViewById(R.id.imageView);
view.getLayoutParams().height = 200;
view.getLayoutParams().width = 200;
// 2.5 kat x ekseninde buyuyecek...
ObjectAnimator scaleDownX = ObjectAnimator.ofFloat(view, "scaleX", 2.5f);
scaleDownX.setDuration(2000);
// 2.5 kat y ekseninde buyuyecek...
ObjectAnimator scaleDownY = ObjectAnimator.ofFloat(view, "scaleY", 2.5f);
scaleDownY.setDuration(2000);
// x ekseninde yer degistirecek...
ObjectAnimator animatorX = ObjectAnimator.ofFloat(view,"x",420f);
animatorX.setDuration(2000);
// y ekseninde yer degistirecek...
ObjectAnimator animatorY = ObjectAnimator.ofFloat(view,"y",300f);
animatorY.setDuration(2000);
// 2 tur cevresinde donecek...
ObjectAnimator rotateAnimation = ObjectAnimator.ofFloat(view,"rotation",0f,720f);
rotateAnimation.setDuration(2000);
// saydamligi 0 dan 1 e cikacak...
ObjectAnimator animatorAlpha = ObjectAnimator.ofFloat(view, View.ALPHA,0.0f,1.0f);
animatorAlpha.setDuration(2000);
AnimatorSet animationSet = new AnimatorSet();
animationSet.playTogether(scaleDownX,scaleDownY,animatorX,animatorY,rotateAnimation,animatorAlpha);
animationSet.start();
}
}
Birazda uygulama içi seslendirmelerden bahsedelim. her butona basıldığında kulağa hoş gelen bir ses çıkartılmalıdır. Hatalı cevap verildiğinde yada oyunlarda hata yapma durumlarında bir cam kırığı sesi ile durum kullanıcıya hissettirilmelidir. Uygulama bölüm bölüm ilerliyorsa, bölüm geçişlerinde kullanıcıyı bir müzik dinletilmelidir. Bu müzik kullanıcıyı hırslandıran bir tonda gerçekleştirilmelidir. Mediaplayer ile bu seslendirme özelliklerini kolayca uygulamalarımıza ekleyebiliriz.
package com.erdinulger.mathforkids;
import android.media.MediaPlayer;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
public class Main3Activity extends AppCompatActivity {
MediaPlayer mp;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mp = MediaPlayer.create(this,R.raw.sound1);
mp.start();
}
}
Son yıllarda sadece çocuklar için geliştirilen uygulamalarda değil tüm uygulamalarda gündemde olan konu ise oyunlaştırmadır. Kullanıcılar uygulamaları kullanırken bir amaç doğrultusunda hedefe ilerlerken topladığı havuç tabir edilen puan, madalyon veya kupa gibi simgeler ile ödüllendirilebilirler. Bu ödüller insanların uygulamayı kullanmasını daha çok teşvik eder. Ödülleri toplamak için daha motive, daha uzun süreli uygulama kullanımları gerçekleştirilir.
Projelerinizin başarılı olması dileğiyle,
İçerik için teşekkürler.