RSS

New-Age Bootstrapping Is Not A Money Problem, It’s A Product Opportunity

New-Age Bootstrapping Is Not A Money Problem, It’s A Product Opportunity

Napmalı netmeli🙂

TechCrunch

Editor’s note: Ben Schippers is the co-founder of HappyFunCorp where he spends his days building software for startups and fortune companies.

The tendency for entrepreneurs is to build big products. But the problem with big, feature-rich products is that they take substantial time and money.

People talk about this topic frequently, especially in the technology sector. What I’m laying out here, however, is slightly different. I’m discussing how bootstrapping has evolved. How bootstrapping has become more of a product problem and an opportunity. If entrepreneurs can learn to release smaller products early and often, then the conversation about having to raise venture capital early wildly shifts and enables friends and family rounds to be much more impactful — an idea that is beneficial for all parties.

As bandwidth continues to become cheaper and technology more accessible, we’ve seen a huge shift in how technology is being built, deployed and consumed. Even though the technology landscape has changed, entrepreneurs are still…

View original post 576 kelime daha

 
Yorum yapın

Yazan: 13 Mart 2015 in Gezi-Etkinlik

 

YENİ ADRESİM : www.tugrulasik.com

                          WWW.TUGRULASIK.COM

                                  WWW.TUGRULASIK.COM

                                  WWW.TUGRULASIK.COM

 

 

 

Etiketler: , , ,

Android Not Defteri Uygulaması

Merhabalar arkadaşlar,

Kısa bir süre önce SQLite’ın ne olduğu ve android üzerinde nasıl kullanıldığıyla ilgili kısa bilgiler vermiştim. Vermiş olduğum bilgileri biraz daha anlaşılabilir hale getirmek adına yazmış olduğum “Not Defterim” uygulaması bugünkü yazımın konusu.

Yazının akışında, ilk olarak uygulamanın nasıl çalıştığını görselleriyle anlatacağım daha sonra ise uygulamanın yorum satırlarınıda içeren kaynak kodu paylaşacağım. Sqlite ve customlistview  konusunda içerik barındıran bir uygulama olan “Not Defterim” uygulamasının  uygulamalarınızı geliştirirken yardımcı olması dileğiyle😉.

Uygulamanın Çalışması

Not defteri uygulaması, not ekleyip notlar üzerinde düzenlemeler ve silme işlemi yapabileceğiniz bir uygulama. Eklenen notlar sqlite veritabanında kaydediliyor ve ihtiyaca göre sorgularla çağrılıyor. Ayrıca notları listelerken kullanılan listview yapısının elementleri custom olarak hazırlanmış bir layoutun listeye adapte edilmesiyle oluşuyor.

                          WWW.TUGRULASIK.COM

Devam * Devam * Devam

Read the rest of this entry »

 
4 Yorum

Yazan: 21 Aralık 2011 in Android

 

Etiketler: , , , , , , , , , , , , , , , ,

Android SQLite Database Kullanımı

Merhabalar arkadaşlar,

Bugün SQLite’ın ne olduğuna ve  android üzerinde  nasıl kullanıldığına değineceğim. Bilindiği üzere çoğu uygulamada verilerin bir yerlerde depolanması gerekiyor. Bunun için en iyi seçimlerden birinin veritabanı olduğu şüphesis. Sözü fazla uzatmadan konuya girelim artık. Faydalı olması dileğiyle.

SQLite Nedir ?

Kullanımı basit, çok yer kaplamayan ve mobil cihazlarda rahatlıkta kullanılabilen açık kaynak kodlu ve sistem bağımsız bir veritabanı kütüphanesi ve motorudur. SQLite, onlarca programlama dili ile kullanılabilir. Az yer kaplaması ve istenilen hızda veri işlemleri yapabilmesi tercih sebepleri arasındadır.

SQLite Veritabanında Desteklenen Veri Tipleri

  • TEXT
  • NUMERIC
  • INTEGER
  • REAL
  • NONE

SQLite Veritabanının Android Üzerinde Kullanımı

Bilindiği üzere Android üzerinde otomatik olarak hazır bir veri tabanı sunulmamaktadır. Eğer android uygulamamız için bir veritabanı oluşturmak istiyorsak, kendi tablolarımızı ve veri tiplerimizi belirlemeli  daha sonrada bunlar arasındaki ilişkileri düzenlemeliyiz. Yani sıfırdan bir veritabanını hayata geçirmeliyiz diyebiliriz. Bu ilk bakışta biraz karmaşık gelebilir, hatta sqlite’ın görsel arayüzünün olmadığını düşünürsek dahada karmaşıklaştığını düşünebiliriz; fakat daha önce sql ile biraz ilgilenmiş iseniz çok rahatlıkta sqlite’a uyum sağlayabilirsiniz. Ayrıca üçüncü parti araçlarla görsel arayüz desteği sağlanabilmektedir.

                          WWW.TUGRULASIK.COM

Şimdi android üzerinde bir veritabanının nasıl oluşturulduğuna ve temel operasyonların (SELECT,DELETE,INSERT,UPDATE) nasıl kullanıldığına bir göz atalım.

Öncelikle şunu söylemeliym ki, SQLite veritabanı oluştururken bazı hazır sınıfların altsınıfları olarak türetilen sınıflar üzerinde işlem yapmak bizlere her zaman fayda sağlayacaktır. Kütüphane tarafından sağlanan sınıflar hem mantıksal bir bütünlük hemde veritabanını yönetmeyi kolaylaştıracak yetenekleri desteklemektedir. Bir veritabanının nasıl oluşturulduğunu ve operasyonların nasıl çalıştırıldığını aşağıdaki adımlarda bulabilirsiniz.

1. SQLiteOpenHelper’dan türetilen bir sınıf oluşturmak.

public class TestDBHelper extends SQLiteOpenHelper { }

Bu bizlere  2 methodu kullanma zorunluluğu getirecektir.

  1.  onCreate(SQLiteDatabase db) : Veritabanı ilk oluşturulduğunda çağrılır. Tabloları, viewleri, trigger vb. yapılar bu method içinde oluşturulur.
  2.  onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon) : Veritabanı üzerinde herhangi bir değişiklik olduğunda çağrılır. Tablo değişimi vb. gibi.

2. Sabitleri tanımlamak

public class DenemeDBHelper extends SQLiteOpenHelper {

static final String dbAdi=”DBTEST”;
static final String KISITABLE =”KISI”;
static final String _ID=”_ID”;
static final String ad =”ad”;
static final String soyad =”soyad”;
static final String yas =”yas”;
static final int version =1;

//constructer()…
//onCreate()….
//onUpgrade()….
}

Sabitleri helper sınıf içinde tanımladığımız gibi farklı bir sınıf içerisinde de tanımlayabiliriz. Yeterki erişilebilir ve kullanımı anlaşılabilir olsun. Ben örnek için kişinin ad,soyad ve yaşının tutulduğu tabloyu içinde barındıran bir veritabanını baz aldım. (Static ve final olarak tanımladığımıza dikkat ediniz !)

3. Constructer

public TestDbHelper(Context context){

super(context,dbAdi,null,version);

}

4. onCreate() ve Tablo Oluşturmak

Tablo oluşturma işlemlerimizi onCreate() methodu içerisinde yapıyoruz.  Aşağıda bir kişi tablosu oluşturmak için gereken sql cümleciğini ve bir tablonun nasıl oluşturulduğunu bulabilirsiniz.

public void onCreate(SQLiteDatabase db) {

db.execSQL (“CREATE TABLE”+ KISITABLE+”(“+_ID+” INTEGER PRIMARY KEY AUTOINCREMENT,”+ ad+”        TEXT, “+soyad+” TEXT, “+yas+” INTEGER);”);

}

5. onUpgrade()

Veritabanında herhangi bir modifikasyon olduğunda onUpgrade() methodu çalıştırılır. Daha sonrasında çağrılan onCreate() methodu değişikleri hayata geçirmeye yarar.  (Drop Table , Alter Table, Drop arg. Alter arg)

public void onUpgrade(SQLiteDatabase db, int eskiVersiyon, int yeniVersiyon){

db.execSQL(“DROP TABLE IF EXISTS”+KISITABLE);

onCreate(db);

}

6. Veritabanı İşlemleri için Gereksinimler

  • close() : Veritabanını kapatır.
  • getReadableDatabase() : Okunabilir bir veritabanı sunar. Select işlemleri için uygundur.
  • getWritableDatabase() : Yazılabilir bir veritabanı sunar update,delete ve insert işlemleri için uygundur.

7. Queryleri Çalıştırmak

Sqlite hem bilinen sql cümleciklerini (rawQuery()) desteklemektedir hem de kendi içinde özelleşmiş sorgulama methodları bulunmaktadır.

  • db.rawQuery(String sql, String[] selectionArgs) : Örneğin SELECT * FROM KISITABLE sql cümleciğini kullandığımızda tablodaki tüm verileri tamamıyle elde edebiliriz. Döndürülen sonuç Cursor tipindeki değişkene atanır .
SQlite’ın özelleşmiş methodları ;
  • query(String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy)
  • insert(String table, String nullColumnHack, ContentValues icerikDegerleri)
  • delete(String table, String whereCumlecigi, String[] whereArgumanları)
  • update(String table, ContentValues icerikDegerleri, String whereCumlecigi, String[] whereArgumanlari)
Yukarıdaki methodların kullanımını kısaca örneklemek gerekirse;

public Cursor rawQueryTest() {
Cursor sonuc= new Cursor();

sonuc=db.rawQuery(“SELECT_ID,ad,soyad,yas FROM KISI, null);return sonuc;}


public Cursor queryTest(){

String[] columns={_ID, ad};
String[] isimDegeri={“Tugrul”};
Cursor sonuc=db.query (KISITABLE, columns, “ad=?”, isimDegeri, null, null, null);

return sonuc;

}


private void insertTest(String a, String s, int y) {

ContentValues cv=new ContentValues(3);

cv.put(ad,a);
cv.put(soyad,s);
cv.put(yas,y);

db.insert(KISITABLE, null, cv);

}


private void deleteTest(int id) {

String[] args={String.valueOf (id)};
db.delete (KISITABLE, “_ID=?”, args);

}


8. Cursor Kullanımı

Cursor c = new Cursor();

  • startManagingCursor(c) : Cursor üzerinde işlemler yapabilmeyi sağlar.
  • getCount() : Veritabanındaki kayıt sayısını döndürür.
  • moveToFirst() : Cursor veri tabanındaki ilk kayda gider
  • moveToNext() : Cursor bulunduğu konumdan bir sonraki kayda geçer.
  • isAfterLast() : Son satırdan bir önceki mi sorgulaması yapar
Bunların dışında  getColumnNames(), getColumnIndex(), getString(), getInt() methodları veritabanı işlemleri sırasında sıklıkla kullanılmaktadır.
 Tüm verilerin nasıl getirildiğini ve verilere nasıl ulaşıldığını gösteren kod parçasını aşağıda bulabilirsiniz.

public void cursorTest() {

Cursor c = db.rawQueryTest();
startManagingCursor(c);
if (c.moveToFirst()) {
do {

int id1 = c.getInt(c.getColumnIndex(_ID));
String ad1 = c.getString(c.getColumnIndex(ad));
String soyad1= c.getString(c.getColumnIndex(soyad));
String yas1 = c.getInt(c.getColumnIndex(yas));

//alınan verilerden nesne oluştur dizi vektor, list vb. ekle

} while (c.moveToNext());
}
}


Yazımda sqlite veritabanının android üzerinde nasıl kullanıldığına temel operasyonları örnek alarak kısa bir giriş yapmak istedim. Uygulamalarınızda yardımcı olması dileğiyle . iyi çalışmalar diliyorum.
Okuduğunuz için teşekkürler😉
.
.
.
Kaynakça :
developer.android.com, wikipedia, arsivyazilim.com, sqlite.org, The Android Developer’s CookBook (James Steele, Nelson To)
 
4 Yorum

Yazan: 09 Aralık 2011 in Android

 

Etiketler: , , , , , , , , , , , , , , , , ,

Lokasyon Tabanlı Android Uygulaması Geliştirmek

Herkese merhabalar,

     Bugün, android için lokasyon tabanlı bir  uygulamanın geliştirilme aşamalarını anlatacağım. Öncelikle uygulamamız için “GoogleMapsApi Key” kaydı yapacağız ve daha sonra gerekli emülatör ayarlarını yaptıktan sonra  küçük bir uygulama geliştireceğiz. Herzamanki gibi faydalı olması dileğiyle😉

 API Key Kaydı Yapmak

     İlk olarak bilgisayarımızdan komut penceresini açalım. Başlat’a cmd yazarak veya windowslogotuşu+r kombinasyonunda açılan run penceresinde cmd yazarak komut penceresine ulaşabiliriz. Komut penceresine ulaştıktan sonra hemen sistemimizde kurulu olan jdk’nın bin klasörü için bir path yazalım.(Erişim kolaylığı için!) API key için bizlerden md5 fingerprint gerekeceğinden aşağıdaki komutu yazarak uygulamamızın md5 fingerprint değerini elde edebiliriz. (NOT: 1)jdk6,7… veya jre üzerinden md5 fingerprint elde edilebilir. 2)Keystore varsayılan olarak “C:\users\kullanıcıadınız\.android” dizini içerisinde bulunmaktadır.) 

keytool.exe -v -list -alias androiddebugkey -keystore “keystoreyolunuz” -storepass android -keypass android

Yukarıdaki komutu yazdıktan sonra aşağıdaki gibi bir ekran karşımıza gelecektir.

                          WWW.TUGRULASIK.COM


MD5 fingerprint değerimiz elde ettikten sonra,  http://code.google.com/intl/tr-TR/android/add-ons/google-apis/maps-api-signup.html adresine giriyoruz. Sayfanın altında bulunan ve aşağıdaki gibi görünen bölüme md5 fingerprint değerimizi giriyor ve dünyanın en büyük yalanı olan “I have read and agree…”  seçeneğini seçip generate diyoruz. Açılan sayfada Key ve Key’in nasıl kullanılacağıyla ilgili bilgiler yer almaktadır. Bunları yazımın sonunda paylaşacağım kaynak kod çıktılarında bulabilirsiniz.

Uygulama İçin Emülatör Ayarı

Uygulamamız için yeni bir emülatör oluşturmamız gerekecektir. Hedef olarak Google APIs seçip  emülatörümüzü aşağıdaki gibi oluşturalım.


BURADAN DEVAM EDINIZ

Read the rest of this entry »

 
Yorum yapın

Yazan: 31 Ekim 2011 in Android

 

Etiketler: , , , , , , ,

Göstermiyor Ama Bloğum “1” Yaşına Bastı =)

Merhabalar arkadaşlar,

Bloğumda ilk yazımı yayınladığım günden bugüne tam 365 gün geride kalmış. Zaman o kadar hızlı akıyor ki, ancak geride kalmış diyebiliyorum. Gittikçe anlamak zorlaşıyor zamanın akışını. Bloğuma şöyle dönüp bir baktığımda koskoca 365 günde 11 yazı yayınlamışım. İyimi kötümü tam emin değilim; ama oranlasam  ve yuvarlasam ayda 1 yazı ediyor. Sizin anlayacağınız ben bloğu çok tatile göndermişim🙂 .

                          WWW.TUGRULASIK.COM

Yazma konusunda biraz fakir bir tutum sergilesemde, yazılarımı okuyan  -özellikle son dönemlerde android hakkında yazdıklarımı-  birçok arkadaşımdan olumlu görüşler alıyorum. Görüşlerini benimle paylaşan tanıdığım ve tanımadığım tüm arkadaşlara çok teşekkürler. Önümüzdeki zaman zarfı içinde bloğuma çok daha fazla vakit ayırmayı düşünüyorum. Umarım bu düşüncem, her sınavdan sonra günü gününe çalışacağım diye kendimi verdiğim söz gibi olmaz  ve çok daha fazla işe yarar paylaşımda bulunabilirim🙂 .

Bu arada koskoca 1 yıl boyunca wordpress server bakımına hiç  denk gelmemiştim; ama bugün nasıl olduysa piyangoyu tutturdum🙂 . Birinci yaş şerefine büyük ikramiye 45 dk. kadar bana vurdu. Hadi hayırlısı bakalım.

Bloğum ve bir yıllık dönemle ilgili  çok daha fazlasını şu anda yazmak isterdim. Sanırım daha sonraya kalacak. Şimdi uyumam gerekiyor.  Sabah 08:30’da beni bekleyen bir ders var.  Sabahın 6’sına kadar nette keyif yaparım sonrada 10:30’daki lab’a giderim diyordum ki, dersin olduğu haberini alıp keyfimi 1-2 saat erken bitirmeye karar verdim. Bazen planlarımız değişebiliyor.

Okuduğunuz için  çok  teşekkürler… İyi geceler.

 
Yorum yapın

Yazan: 10 Ekim 2011 in Bir KONU'm Var

 

Etiketler: , ,

Bir Android Uygulamasını İmzalamak

Merhaba arkadaşlar,

Bir uygulamayı yazdığımızda ham haliyle farklı cihazlara yüklemek mümkün olmuyor. Emülatör veya debug ettiğimiz cihaz üzerinde çalıştırırken yüklenme esnasında zaten imzalandığından bir sıkıntı  ile  karşılaşmıyoruz; fakat güvenlik açısından farklı cihazlar için uygulamamızı imzalamamız gerekecektir. Bu şekilde bir yöntem izlenmeseydi; ne olduğu, nerden geldiği bilinmeyen tonlarca uygulama mobil cihazlarımızda yer edinirdi.

Şunu söylemeliyimki, bir android uygulamasını imzalamak diğer mobil işletim sistemleri için yazılan uygulamaları imzalamaya göre daha esnek. Nokia veya iPhone için yazdığınız bir uygulamayı imzalayabilmek için şirket tarafından sizlere verilen sertifikayı kullanmanız gerekecektir. Bir android uygulamasını imzalarken ise böyle bir sertifikaya gerek kalmadan kişisel olarak verileri girmemiz yeterli olcaktır.

                          WWW.TUGRULASIK.COM

Daha önce anlatmış olduğum celcius-fahrenheit uygulaması üzerinde bir android uygulamasının nasıl imzalandığını anlatacağım. İmzalama sırasında direk olarak Sdk’nın aracını kullandım. Daha basit yollarla yapmak istediğimi yapmak varken, komut satırlarıyla uğraşıp olayı dallandırıp budaklandırmanın anlamı olmadığını düşünüyorum.😉 Aşağıdaki adımları takip ederek uygulamamızı imzalayabiliriz.😉


1. Proje Sağ Tık>Android Tools > Export Signed Application Package


Read the rest of this entry »

 
6 Yorum

Yazan: 01 Ekim 2011 in Android

 

Etiketler: , , , , , ,

 
%d blogcu bunu beğendi: