Bu sene 2- 3 Kasim’da düzenlenen ve ismi “hackathonist” seçilen hackathon İTÜ kampüsünde yapıldı. Bu sene yapılan hackathonnun birde teması vardı. İstanbul ulaşım API’lerini kullanarak akıllı şehir uygulamaları geliştirmemiz bekleniyordu.Bununla ilgili olarak 1 Kasım günü CitySDK projesi anlatıldı. Proje bir cümle ile geliştiricilere rest servisler sunarak istedikleri ortamda uygulama geliştirmeyi sağlıyor. Burada benim gördüğüm eksik android geliştiricileri için bir kütüphanenin olmamasıydı. Yani siz bir uygulama geliştirmek isterseniz daha önce bu SDKyı kullanan kişilerin yaptığı işleri tekrar etmeniz gerekiyordu. Bende fikir olarak kendime android geliştiricileri için bir kütüphane ve bu kütüphane ile örnek bir proje yapmayı seçtim. Geliştirdiğim uygulamaları githubdan görebilirsiniz. Kütüphane için buradan, örnek uygulama içinse şuradan kodlara erişebilirsiniz. Etkinlik sayfası içinde şuraya bakabilirsiniz.

Bir veriyi SharedPreferences da saklamak icin aşağıdaki gibi bir kod parcacığı yazmak gerekiyor.

SharedPreferences settings = getSharedPreferences(Constants.PREFERENCESTAG, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("email", mEmail.getText().toString());
editor.commit();

Saklanan verinin tekrar kullanılması içinde aşağıdaki gibi birşeyler yazmak gerekiyor.

SharedPreferences settings = getSharedPreferences(Constants.PREFERENCESTAG, 0);
settings.getString("email", "");

Android’de bir intenti başlatırken ona veri geçirmek istiyorsanız. Aşağıdaki gibi yapabilirsiniz.

Veri göndermek için

Intent intent = new Intent(LITestActivity.this, Register.class);
intent.putExtra("name", person.getFirstName());
intent.putExtra("lastName",  person.getLastName());
intent.putExtra("id", id);
startActivity(intent);

 

Verileri çekmek için

Intent myIntent = getIntent();
String name = myIntent.getStringExtra("name");

Bu problem Manifest.xml de aşağıdaki izini vermediğimizden kaynaklanabilir. Eğer bu probleminizi çözmezse aşağıdaki java kodunu sinifiniza ekleyin.

  • < uses-permission android:name="android.permission.INTERNET" />
  • StrictMode.ThreadPolicy policy =
    new StrictMode.ThreadPolicy.Builder().permitAll().build();

    StrictMode.setThreadPolicy(policy);

    cmddeyken netsh wlan set hostednetwork mode=allow ssid=agadi key=şifre yazıyoruz. Şifrenin 8 karakter’den fazla olması gerekiyor. Daha sonra Ağ Bağlantılarınızı Görüntüledikten sonra Sağ tuşunuzla tıklayıp Özellik ‘e tıklayın. Paylaşım Sekmesine gelip diğer bilgisayarlar için izin verin. cmdye tekrar gelerek netsh wlan start hostednetwork çalıştırın. Böylelikle diğer bilgisayarlar sizin bilgisayarınızı access point olarak kullanabilirler. Bu durumu sona erdirmek için yine cmdye netsh wlan set hostednetwork mode=disallow ssid=ağadı key=şifre yazarak bu işlemi yapabilirsiniz.

    Hibernate nesnelerinizde, normal tipteki (String, int, boolean..) verileriniz çağır anında dolarlar. Sizin eğer tablo ilişkilerinizden dolayı sınıfınızda başka bir sınıf referans edilmişse bu bağlı verilerin çekilmesi için iki yöntem vardır. Bunlar lazy ve eager. Eğer eager kullanırsanız, normal tipteki verileri çekerken ilişkili tablodaki verileride otomatikman çekmiş olursunuz. Lazy kullanırsanız eğer o verilere context içerisinde erişmek isterseniz, o zaman çeker.

    Mac üzerinde eclipse kullanırken ayrılan rami artırmak isterseniz, eclipsesin çalıştırma dosyasının üzerinde sağ tıklayın “Show Package Contents” i seçin. Çıkan pencerede “Content” oradan da “MacOS” klasörüne girince eclipse.ini dosyasına erişebilirsiniz. Burada da bilgisayar özelliklerinize göre ayarlamalarınızı yapabilirsiniz.