Merhaba . Eclipse e tam alışamayan , eclipse de android kısayolları göremeyenler için ilaç Motodev Studio ydu fakat ne yazıkki Motorola desteğini kesti.
Android uygulama geliştirmeye başladığım ilk dönemlerde ne zaman neyi yapacağımı tam bilemediğim için Visual Studio tarzı sürükle bırak mantığında geliştirme ortamı arıyodum . Daha sonra motodev studio yu buldum ve zamanında bana çok yardımcı oldu . Visual Studio kadar olmasa da standart eclipse den çok daha iyiydi ve daha hızlı geliştirme yapılıyodu . Geliştirenin Motorola olduğunu duyunca da aklıma Cem Uzan gelmişti .
İşte o günden sonra geliştirmeleri motodev üzerinden yaptım . Service , Broadcast Receiver , SMS leri okuma gibi temel şeyleri birkaç tıkla hallediyodum . Ama yaklaşık 1 hafta önce artık yeni proje açmada , layoutlarda sıkıntı yapınca güncelleme gereği duydum . Uygulamanın kendi içerisindeki "check for updates" i en az 1 aydır deniyodum ve hiçbir update bulmuyodu . Ben de bari elle güncelliyim dedim ama sitesinde ne güncelleme ne de programın kendisinden bahsediliyodu . Google da kısa bi aramadan sonra kötü haberi onaylı bi şekilde gördüm . Zaten ben de bi ara motodev e ek özellikler ekliyim derken iyice bozmuştum .
O andan sonra standart eclipse e geçmem gerekti ve şu an Eclipse ve Motodev icon ları yan yana duruyo . Android in kendisi , proje dosyaları , herhangi bişey silinmesin diye motodev e dokunmuyorum ama yakında silmek zorunda kalıcam .
Keşke motorola motodev den desteğini kesmese ve android e yeni başlayanlar fazla zormanmayacak olsa . Belki motodev beni birazcık hazırcılığa alıştırmıştır ama o kadar pratikten sonra sanırım motodev olmadan da güzelce kod yazabilirim , ihtiyacım olan tek şey google .
Ben google dan da yeni bi derleyici olmasa da eclipse e daha güzel bi android plugin i bekliyorum fakat google yıllardır yapmamakta ısrar ediyo . Sanırım android in açık kaynak politikasından dolayı motorola gibi başkalarından bekliyo . Eclipse market de birazcık arama yaparsam işe yarar bikaç plugin bulabilirim .
Bi de eclipse in en büyük problemi çok zor açılması ve açıldıktan sonra kendine çok zor gelmesi . Ne Visual Studio ne de XCode da böyle büyük bi problem yok . Denemedim ama sanırım eclipse in son sürümünde de android tam desteklemiyomuş . Yani eclipse de de güncelleme yaparken 2 kere düşünmem gerekicek ama şimdilik bu eclipse bana yeter
Umarım motorola pişman olur ve motodev e tekrar destek verir . Ya da benzer bi derleyiciyi Samsung dan bekliyoruz , o kadar Galaxy cihaz sattınız biraz da geliştiricileri düşünü artık !!!!
25 Nisan 2013 Perşembe
5 Nisan 2013 Cuma
A'dan Z'ye jQuery - Olmuş ama Tam Değil
Merhaba . Bu yazıyı 2-3 gün önce yazmayı planlıyodum ama bu kitapla ilgili hiçbişey planladığım gibi gitmediği için bu yazı da planlandığı gibi olmadı .
Kitabı yaklaşık 1-1.5 ay önce aldım ve kitabı alırken diğer Jquery kitaplarına da ayrıntılı olmasa da baktım ve en iyisinin bu olduğuna karar verdim (kısa tanıtım için tıkla) . Kitap önce kısa bi javascript ile başlamış , daha sonra jquery ajax , jquery UI , jquery Mobile derken Android ve PhoneGap a bağlamış olayı . Ayrıca kitapta bolca PHP , veritabanı , HTML kodlarını görebilirsiniz . Bazı yerlere çok değinmiş , bazı yerler için sayfa israfı yapmış ama genel olarak iyi .
Kitabı almak için baktığımda yanında CD göremedim . İçinde illaki yazılan kodlar için link vardır dedim ama onu da bulamadım . Sonra bu adamlar kitabı satmak için bilerek kodları vermiyo , mecbur kitaptaki kodları yazıcaz dedim ve kitap - bilgisayar arasında bayaa bi yol yapmış oldum . Daha çok gece çalıştığım için ışığa göre oturmam gerekti falan . Yani 0 derece olan gözümün nimetlerinden sonuna kadar yararlandım . Amaa şu kitabı internette ariyim , size link verim diye kitabı google da ararken kodları indirmeye yarayan link gördüm . Yani kitap bitti , kodların bazılarını yazdım - denedim , bazılarını sadece roman gibi okudum ve her şey bittikten sonra linkleri bulmuş oldum . Keşke kitapta yazsalardı linki . Bi de şu çakallığı söylemeden geçemicem . Sitede kodları indirmek için size bi soru soruyo . "jQuery Kitabınızdaki 1. Bölüm 1. Paragrafın ilk kelimesini giriniz." İndirmek isteyenler için cevap : "Kitap" . Bu kodlar niye bu kadar değerli anlamıyorum . Sanki örnek kodları indiren kitabı almıcak!!
Kodları elle yazdığım için bitirme süresi çok uzun oldu . Bazı yerleri okuyup geçmek zorunda kaldım . Kitap genel olarak güzel anlatıyo fakat bazı bölümde verilen kodlar denildiği gibi çalışmıyo . Basit hatalar var , kitaptakinin aynısını yazim , çalışsın diyenlerin şevki kırılabilir . Bazı jquery fonksiyonları sadece anlatıp geçilmiş . Nasıl kullanılır , niye kullanılır , parametreler ne işe yarar söylenmemiş . Ama kitaptaki bilgiler internette birleşince ortaya güzel şeyler çıkıyo .
Javascript , php , veritabanı , html üzerinde ağırlıklı olarak durulmamış . Kısaca anlatıp geçmek tercih edilmiş . Kitabı tam olarak anlamak istiyosanız bunları temel olarak bilmeniz gerekiyo . Yoksa kitabın yaklaşık 1/4 ünden bişey anlamazsınız .
Jquery mobile kısmı benim kitabı gerçek alma sebebim ama istediğim şeyleri bulamadım . 1-2 temel şey var ve bu bütün projelerde var . Mesela adam sadece 1 label göstericekse illaki "header , content , footer" kısımlarını ekliyo ve bu kodlar en az 10 satır. Onun yerine başta bunları anlatıp ilerisinde parça kod olarak verilse sayfa sayısı azaltılabilir , daha çok konu anlatılabilirdi . Ama Türkiyede ne kadar sayfa , o kadar para gibi bişey var sanırım . Tabii bu kitabın fiyatına da yansıdı . Dediğim şeyler yapmılmış olsa kitap 500 sayfadan 350 sayfaya rahat bi şekilde düşebilirdi . Ama yazarın tercihi diyip geçmek gerek .
Jquery mobile dan sonra Eclipse ve Phonegap kısımları var . Ben javascript ile cross platform mobil uygulama yazmayı tam olarak mantıklı bulmadığım için o kısmı atladım . Ama o kısım da hızlı geçmiş . Zaten Eclipse e android SDK sı kurmak başlı başına 5-6 sayfa .
Sonuç olarak kitap yararlı oldu ama beklediğim gibi beni "aydınlatmadı" . Biraz daha pratik yapmış oldum . Bi de yazar jquery kütüphanesini kullanmayı değil fonksiyonları kullanmayı anlatmış . Yani jquery API sine bakınca yeni fonksiyonları tam olarak anlayamadım . Dreamweaver da otomatik tamlamlamayı tam olarak desteklemediği için kodları kolayca yanlış yazabilidim . Bayaa bi yerde debugging için alert verdirmem gerekti . Fakat kitabı bitirince anladım ki ben javascript , php , html yazmayı sevmiyomuşum . Ne yazıkki bu da değişmedi ama en azından 1-2 tane jquery ve özellikle jquery mobile pdf si bitirme hedefim var . PDF leri indirdim , şimdi seçim yapmam gerekli.
15 Mart 2013 Cuma
Oturduğun Yerden , Hatta Yatarak PARA KAZANMA
Merhaba . Öncelikle bu yazıyı Google dan arayarak bulduysanız bayaa bi site gezmiş , okumuş ve gerçekten yattığınız yerden para kazanacağınıza inanıyosunuz demektir .
Ben inanmıyorum . Ama inanıp internette seni bulup inandırmaya çalışan daha da kötüsü çevremde iananlar var.
İlk örnek ne yazıkki internetten . Bir bayan (adını hatırlamıyorum) ben uyurken aradı ve "merhaba metin bey şu şu şu siteniz çok güzelmiş , çok beğendim" diye lafa başladı . Ama ilk lafında muhabbete yanlış yerden girdi çünkü sitem ödeme yapmadığım için kapatıldı ve ben siteyle en az 5 aydır uğraşmıyorum . Uykulu uykulu "site kapalı , o hosting firmasının index" i dedim ve o da "hee , düşünemedim " dedi . Amacı daha sonra ortaya çıktı . "Affiliate sistemimizle ilgenirmisiniz" diye konuya girdi . Ben de uykunun verdiği bi sersemlikle "ne ? " diye cevap verdim sanırım . O da ben bu kelimeyi bilmiyorum sanıp "Satış ortaklığı projemiz var , oturduğunuz yerden ..... (devamı belli zaten)" diyip lafa girdi . Ben zaten uykumun derdindeydim . Ard arda "Yok , ilgilenmiyorum , olmaz , hı hı , ewt , hmm" dedikten sonra bayan istemediğimi anladı ve "tamam o zaman iyi günler" diyip kapattı .
Telefon olduğu için sıkıntı yok , istediğim zaman kapatabilirim , tek kötü yanı uykumu bölmüş olması . Ama daha da kötüleri var "kıramayacağın dostun" .
İkinci örnekte çocukluk arkadaşım , hangi üni hatırlamıyorum ama Uluslar Arası İlişkiler okuyo ve gerçekten çok iyi birisi . Bi gün facebook dan "seninle ilgili çok iyi projem var " dedi ve projenin ne olduğunu ısrarlarıma rağmen söylemedi , ben de fazla üstüne gitmedim . Daha sonra telefonla aradı "çok iyi iş buldum , istediğin zaman çalışıcaksın , çok kazanıcaksın , ben yapıyorum , aklıma sen geldin ..." gibisinden yine meraklandırıcı cümleler söyledi fakat işi yine söylemedi . Üçüncü aramasında ise "ben şuan ofisteyim , sen de gel dedi". Ofis diyince gerçekten de ciddi bi iş yapıyo ve beni de ciddi bi işe çağırıyo diye tahmin ettim ve bi anda ikna oldum .
Yazın ortasında çok sıcak bi günde Okmeydanı ndan Kadıköy e gitmek zorunda kaldım (ne kadar gittiğimi görmek için tıkla) . Buluştuktan sonra "ofis" dediği yere gittik ve daha kapıdan ilk girerken "lanet olsun , tahmin etmeliydim " diye içimden geçirdim . Çünkü kapıda sözde bizi sonsuza kadar sağlıklı yaşatacak ilaçlar vardı ve %99 ihtimalle de iş saadet zincirinin içerisinde bi halka olmaktı ve ne yazıkki tahmin ettiğim gibi de oldu. Önce girmek istemedim , "yapmayalım , bunlar yalan , allah aşkına , ne olur , bırak gidim , acil işim çıktı " sözleri bile beni kurtarmadı ve yeni gelenlere yaptıkları seminere girmek zorunda kaldım . Tabii ki tek kurban ben değildim . Sistemin içerisinde olan diğer insanlar da arkadaş ve akraba kimi buldularsa getirdiler . Konuşmayı yapan bi doktordu . Sözünü başında "yeni gelenler neden burda olduklarını bilmiyolar , zaten ben de sizi buraya çağranlara kesinlikle söylememelerini tembih ettim dedi" ve o anda dostumu bu gerizekalının kandırdığını anladım ve tabii ki içimden küfür etmeye başladım . Daha sonra başlangıç konuşmasına girdi "ben hastalarıma eczanelerdeki ilaçları yazmaya utanıyorum . onlar kötü , bunlar iyi . bunu kullanan bana duacı" temalı bi konuşma yaptı. En son tabii ki saadet zincirini anlattı . Bütün saadet zincirlerinde olan bence "yalanları" söyledi . "Satmak zorunda değilsiniz , satmadan kazanıcaksınız , alt üye , üst üye , alt üyenin sattığının yüzde bilmem kaçı sana gelicek , senin sattığının yüzde bilmem kaçı üst üyene gidicek.." Ama sisteme girmen için 900 TL ödemen lazım .
Bütün bu klişe lafları dinledikten sonra ara oldu ve "inanmayan arkadaşlar 2. bölüme katılmasalar da olur dediler" . Tabii ki ben de inanmayan olarak gitmek istedim . Ama arkadaşım , "bu bildiğin gibi değil , ben de kazanıyorum . Ailem ilaçları (firmanın lafı : kesinlikle ilaç değil , destekleyici ürün) kullanıyo çok memnun " dedi . Ama o kadar zırvalıkları dinledikten sonra 2. bölüme girersem arkadaşımdan nefret ederim diye girmemekte ısrar ettim ve girmedim .
Firmayı söylemekte hiçbir sakınca yok . Forever Living (sonsuza kadar yaşamak) , işin daha da kötüsü benim arkadaşım biraz dindar birisi ve ahiret inancı çok sağlam . Benim şaşırdığım nokta böyle bi ismi olan firmaya nasıl inanıyo . Ben tam gidicekken tabii ki o beni 2. bölüm için kalmaya ve tüm sorularımı orta yollu bi şekilde cevaplamaya çalışıyodu . 3 ya da 4. kez "Sen nasıl bulaştın bu saçmalığa " diye sorduğumda cevap vermek zorunda kaldı . Eniştesi de bu işin içindeymiş , hatta 1. bölümde "biz yaptık , beğendik , siz de yapın " diye anlatanlar içindeymiş.
Sonuç olarak şu ana kadar çok yattığınız yerden para kazanın yazısı , videosu , teklifi , sistemi gördüm ve bence hepsi yalan . Bunu okuyup bu sitemi savunanlar olabilir , belki bu işten para da kazanıyolardır ama reklamlarda dedikleri gibi "zengin olma sırası sizde , şu ana kadar ... kişi zengin oldu" diye bişey yok . Bence bu sistemlerde en çok kazanan tepedeki zeki insanlar . Bu sistemler bi ara patlama yapmıştı ve ev ev dolaşıyolardı ama dolandırıcılık haberlerinden sonra azalmaya başladı.
Eğer ki yazıyı okuduktan sonra varsa tarayıcıdaki diğer sekmelerde duran yatarak para kazanma konulu içeriğe bakacaksanız devam edin . Ama allah aşkına saadet zinciri olmasın , dostlarınızı boşuna yormayın . İyi Günler , Bol kazançlar
6 Mart 2013 Çarşamba
Microsoft Student Partner ( MSP ) "Adayı" oldum
Merhaba . Uzun bir bekleyişten sonra MSP adaylığına başvurumun kabul edildiğine dair mail aldım ama sonuçtan çok süreç beni yordu . İşte süreç :
İlk olarak 2 dönem önce başvurdum MSP olmak için . O zaman başvuru formunu doldururken video göndermek de zorunluydu . Videoda genel olarak "neden MSP olmak istiyorum , olursam neler yapıcam " gibi soruları cevaplamak gerekiyodu . Kısa video olması gerekiyodu tabii ki , ortalama 5 dk demişlerdi fakat ben videoyu çekmek için 2 günümü harcadım . Hep aklıma yeni bişi geldi , hızlı konuştum , yawaş konuştum , saçma konuştum , arkadan biri geçti falan derken ilk gün 3-4 saat uğraşmama rağmen "tamam oldu" denecek bişey çıkmadı ortaya . Diğer gün artık ne diyeceğimi kafamda toparlamıştım . 1-2 saatte derdimi anlattım ve baktım ki derdim maksimum 2.5 dakikalıkmış . Videoda genel olarak programlama bilgim üzerine konuştum , Windows 8 , Windows Phone 8 derken MSP olmak iyi olur , hem de bu teknolojileri yakından tanıma , anlatma fırsatı bulurum dedim .
Videoyu youtube a yükledikten sonra formu eksiksiz doldurdum ve yolladım. MSP başvurusu haberi bölümün facebook grubunda olduğu için diğer arkadaşlarda başvurmuştur diye düşündüm . Sonuçları heyecanla beklerken seçilmediğimi gördüm . İşin daha da kötüsü bizim okuldan seçilen hiçkimse yoktu . Tabii ki değerlendirme sonrasında videoyu sildim
Diğer dönem ise reddedilmenin kırgınlığı ile "amaan ne başvurucam" diyip başvurmadım . Bu dönem de yine grubun facebook sayfasında gördüm ve yine başvurmucam derken başvurunun son günü "formu doldurup yollarım , ne olursa olsun " ( video çekmiyeceğim garantiydi ) formu doldurup yolladım . Bu dönemin diğer dönemlerden farkı başvuruların tekbir sitede sadece "Region" farkına göre olmasıydı . Video istenmiyodu ve başvuru formu ingilizceydi . Ben de madem başvuru formu ingilizce açıklamaları da ingilizce istiyolardır mantığıyla formu ingilizce doldurup gönderdim . Zaten yazıcaklarımı da önceden düşünmemiştim . Aslında açıklamalar türkçe de doldurulabilirmiş ve benim yeni başvuru formu göndericek kadar zamanım vardı fakat yine uğraşmadım ve öyle kaldı.
Sonuçlar yaklaşık olarak 15-20 gün önce açıklanmalıydı fakat resmi bi açıklama olmadı . Daha sonra ise facebook sayfasında MSP listesi güncellendi ve bizim bölümden 2 kişi şeçilmişti ve ben yoktum (halaa yokum) . Seçilemedim , bitti artık derken kesin sonuçların o liste olmadığı , en geç 1 Mart a kadar başvuranlara cevap vericeklerini söylediler . 1 Martta da mail gelmedi . Artık seçilemediğim garanti derken 5 Martta Windows a Need For Speed Most Wanted 2012 oyununu bitirip mailime bakarken kabul edildiğimi gördüm . Yani sonucu Windows da görmüş oldum. Mailde şunlar yazıyo : " MSP programı için yaptığınız başvuru bizlere ulaştı ve değerlendirmelerimizi tamamladık. MSP’lik öncesinde, programa MSP adayı olarak katılımınız onaylandı. Önümüzdeki dönem içerisinde göstereceğiniz katılım süresinde, MSP lideriniz ile yürüteceğiniz çalışmalar temel olmak üzere, performansınız değerlendirilip, adaylıktan MSP’liğe geçme durumunuza karar verilecektir." dendi ve MSP liderimden mail geliceklerini belirttiler
Şuanlık bir mail gelmedi ve MSP liderim kim , acaba neler olucak , neler yapıcaz , Windows 8 , Windows Phone 8 konusunda neler olucak beklemekteyim . Birazcık uzak kaldığım Microsoft teknolojileri hakkında artık daha fazla bilgi sahibi olup başkalarına da anlatabilirim umarım . Aynı dönemde MSP adayımıyız emin değilim ama bizim bölümden diğer seçilen kişi "Ruşen Tezelci" de bence bizim sınıfta MSP liği hak eden 3 kişiden biri (hakedenlerin hepsi bayan!!!!) .
Sonuç olarak seçilmiş olmanın verdiği bi haz var ama beni daha çok etkileyen süreç oldu .
NOT : Seçilemeseydim başka bi blog yazısı da kafamda hazırdı . Son 1 haftadır o yazıyı şekillendiriyodum bu yazı sürpriz oldu .
9 Şubat 2013 Cumartesi
IOS İnternetten Resim İndirme Asenkron
Merhaba . Önceki örnekte internette verilen linkten resimi indirme ve göstermeyi anlattım . Bu kez ise aynı işlemi asenkron yapmayı anlatıcam . Öncelikle asenkronun gerekliliğini anlatim .
Önceki örnekte resim indirilirken Main Thread kullanılamaz olur ve kullanıcı resimi indirme esnasında hiçbir işlem yapamaz. İnternetin yavaş olması bu zamanın artmasına neden olur ya da uygulama hata verebilir. Bunun yerine aynı resmi asenkron indirerek Main Thread i kullanmadan yapabiliriz . Böylece kullanıcı istediği işlemi yapmaya devam edebilir . Kodlara tam anlamıyla hakim olabilmek için "dispatch_queue " ye biraz alışık olmak gerekir.
İndirme kodları önceki örneğin aynısı , o kodları anlatmıcam , sadece aynı işlemi asenkron yapmayı anlatıcam .
Fonksiyonumuzun adı bu kez "
ile dispatch kullanarak queue oluşturuyoruz ve işlem asenkron olacağı için dispatch_get_global_queue yi kullanıyoruz ve bu fonksiyon 2 parametre alıyo . 1. parametre öncelik , yani işlemin önceliği . Bunu standart olarak "DISPATCH_QUEUE_PRIORITY_DEFAULT" diyoruz. Yani varsayılan . extra bi öncelik gerektirmeyecek şekilde . 2. parametre ise sistem Flag ı . Bu değer genellikle "0" olur . Zaten Apple dökümanlarına baktığınızda bu değerin 0 dan farklı olması durumunda geriye Null döndürülebileceği söyleniyo . Yani her zaman 0 yazıoruz .
dispatch_async fonksiyonu verilen işlemi oluşturduğumuz queue de asenkron olarak yapmamızı sağlıyo . Burada indirme işlemi yapıcak . Bu fonksiyonda 2 parametre var . 1. parametre asenkron işlemin hangi queue üzerinde çalışacağı . Oluşturduğumuz "queue" değişkeni 1. parametremiz oluyo . 2. parametre ise bir blok yani asenkron olarak çalışacak fonksiyon . Yani indirme işleminin yapılacağı işlem .
Resmi asenkron olarak internetten indirdikten sonra bu resmi UIImageView de göstermek için Main Thread i kullanmamız gerekir . Çünkü kullanıcıyla iletişime geçilen tek thread main thread dir . Bu işlem senkron olarak yapılmalı , yani Main Thread etkilenmeli . Asenkron işlemin içinde senkron işlem yaptırmak için "dispatch_sync" metodu kullanılır ve bu metod da dispatch_async gibi 2 parametre alır . İşlemin senkron olması için 1. parametre "dispatch_get_main_queue()" , yani kodların main thread üzerinde çalışması . 2. parametre ise çalışacak kodlar . Burda basit olarak indirdiğimiz resmi UIImageview üzerinde gösteriyoruz .
Önceki örnekte resim indirilirken Main Thread kullanılamaz olur ve kullanıcı resimi indirme esnasında hiçbir işlem yapamaz. İnternetin yavaş olması bu zamanın artmasına neden olur ya da uygulama hata verebilir. Bunun yerine aynı resmi asenkron indirerek Main Thread i kullanmadan yapabiliriz . Böylece kullanıcı istediği işlemi yapmaya devam edebilir . Kodlara tam anlamıyla hakim olabilmek için "dispatch_queue " ye biraz alışık olmak gerekir.
İndirme kodları önceki örneğin aynısı , o kodları anlatmıcam , sadece aynı işlemi asenkron yapmayı anlatıcam .
Fonksiyonumuzun adı bu kez "
-(void)resimIndirASYNC:(NSString*)resimLink
" .
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
ile dispatch kullanarak queue oluşturuyoruz ve işlem asenkron olacağı için dispatch_get_global_queue yi kullanıyoruz ve bu fonksiyon 2 parametre alıyo . 1. parametre öncelik , yani işlemin önceliği . Bunu standart olarak "DISPATCH_QUEUE_PRIORITY_DEFAULT" diyoruz. Yani varsayılan . extra bi öncelik gerektirmeyecek şekilde . 2. parametre ise sistem Flag ı . Bu değer genellikle "0" olur . Zaten Apple dökümanlarına baktığınızda bu değerin 0 dan farklı olması durumunda geriye Null döndürülebileceği söyleniyo . Yani her zaman 0 yazıoruz .
dispatch_async fonksiyonu verilen işlemi oluşturduğumuz queue de asenkron olarak yapmamızı sağlıyo . Burada indirme işlemi yapıcak . Bu fonksiyonda 2 parametre var . 1. parametre asenkron işlemin hangi queue üzerinde çalışacağı . Oluşturduğumuz "queue" değişkeni 1. parametremiz oluyo . 2. parametre ise bir blok yani asenkron olarak çalışacak fonksiyon . Yani indirme işleminin yapılacağı işlem .
Resmi asenkron olarak internetten indirdikten sonra bu resmi UIImageView de göstermek için Main Thread i kullanmamız gerekir . Çünkü kullanıcıyla iletişime geçilen tek thread main thread dir . Bu işlem senkron olarak yapılmalı , yani Main Thread etkilenmeli . Asenkron işlemin içinde senkron işlem yaptırmak için "dispatch_sync" metodu kullanılır ve bu metod da dispatch_async gibi 2 parametre alır . İşlemin senkron olması için 1. parametre "dispatch_get_main_queue()" , yani kodların main thread üzerinde çalışması . 2. parametre ise çalışacak kodlar . Burda basit olarak indirdiğimiz resmi UIImageview üzerinde gösteriyoruz .
- (void)viewDidLoad
{
[super viewDidLoad];
NSString *resimLinki = @"https://devimages.apple.com.edgekey.net/technologies/tools/images/new_hero20110308.jpg";
[self resimIndirASYNC:resimLinki];
}
-(void)resimIndirASYNC:(NSString*)resimLink{
dispatch_queue_t queue = dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0);
dispatch_async(queue, ^{
NSURL *resimUrl = [NSURL URLWithString:resimLink];
NSData *resimData = [NSData dataWithContentsOfURL:resimUrl];
UIImage *indirilenResim = [UIImage imageWithData:resimData];
dispatch_sync(dispatch_get_main_queue(), ^{
imageView.image = indirilenResim;
});
});
}
IOS İnternetten Resim İndirme Kodu
Merhaba . IOS de verilen linkten resim indirme ve bu resmi UIImageView de göstermeyi anlatıcam . Bu örnek en basit örnek ve resim internetten indirilirken Main Thread kullanılıyo . Bu durumda diğer viewler (buton falan) kullanılamaz .
Ekranı kaplayan UIImageView ekledim ve indirilen resim burada gösterilecek .
ile UIImageView için property oluşturuyoruz ve imageview imize bağlıyoruz . Böylece indirdiğimiz resim bu imageview de gösterilebilecek. Property i ".m" dosyasında synthesize etmemiz gerekiyo.
Resim indirme işlemini fonksiyona atadım ve bu link dışarıdan indirilecek resimin linkini alıyo .
NSString tipindeki link NSUrl oluşturmak için kullanılıyo .
URLWithString metodu verilen linkten NSUrl oluşturmamızı sağlar .
ile de verilen url den NSData türünde bilgi gelir . NSData genel bir kavram ve birçok tip için kullanılır . Biz de resimimizin bilgisini burada tutucaz . Gerçek indirme işlemi burada yapılıyo
ile de indirdiğimiz veriyi resime dönüştürüyoruz . Artık bu resmi kullanabiliriz
bu adımda da resimin gösterilme aşaması var . Eğer ki herşey doğru çalışıyosa resmi görmeniz gerekir.
Yazdığımız fonksiyonu denemek için ViewDidLoad metodunda örnek olarak bir resim indirdim .
İstediğiniz resimin linkini yazarak resimi indirebilirsiniz.
Birsonraki yazıda resmi asenkron olarak indirip ekranda göstermeyi anlatıcam
}
Ekranı kaplayan UIImageView ekledim ve indirilen resim burada gösterilecek .
@property(nonatomic,retain)IBOutlet UIImageView *imageView;
Resim indirme işlemini fonksiyona atadım ve bu link dışarıdan indirilecek resimin linkini alıyo .
-(void)resimIndir:(NSString*)resimLink
NSString tipindeki link NSUrl oluşturmak için kullanılıyo .
NSURL *resimUrl = [NSURL URLWithString:resimLink];
URLWithString metodu verilen linkten NSUrl oluşturmamızı sağlar .
NSData *resimData = [NSData dataWithContentsOfURL:resimUrl];
ile de verilen url den NSData türünde bilgi gelir . NSData genel bir kavram ve birçok tip için kullanılır . Biz de resimimizin bilgisini burada tutucaz . Gerçek indirme işlemi burada yapılıyo
UIImage *indirilenResim = [UIImage imageWithData:resimData];
ile de indirdiğimiz veriyi resime dönüştürüyoruz . Artık bu resmi kullanabiliriz
imageView.image = indirilenResim;
bu adımda da resimin gösterilme aşaması var . Eğer ki herşey doğru çalışıyosa resmi görmeniz gerekir.
Yazdığımız fonksiyonu denemek için ViewDidLoad metodunda örnek olarak bir resim indirdim .
NSString *resimLinki = @"https://devimages.apple.com.edgekey.net/technologies/tools/images/new_hero20110308.jpg";
[self resimIndir:resimLinki];
İstediğiniz resimin linkini yazarak resimi indirebilirsiniz.
Birsonraki yazıda resmi asenkron olarak indirip ekranda göstermeyi anlatıcam
-(void)resimIndir:(NSString*)resimLink{
NSURL *resimUrl = [NSURL URLWithString:resimLink];
NSData *resimData = [NSData dataWithContentsOfURL:resimUrl];
UIImage *indirilenResim = [UIImage imageWithData:resimData];
imageView.image = indirilenResim;
}
10 Ocak 2013 Perşembe
iosprogramlama.blogspot.com kapandı !!!
Merhaba . Yaklaşık 10 dk öncesine kadar hayatımın nasıl gittiğine dair blog yazısı yazıyodum ki yarıda vazgeçtim , benim bile ilgimi çekmedi .
İkinci konu olarak da http://iosprogramlama.blogspot.com/ sitesinin kapatılması. IOS konusunda Türkçe kaynağın çok az olmasından dolayı bulduğum siteleri kaçırmak istemiyorum . işte bu da onlardan biriydi. Site pro düzeyde kodlama anlatmıyo ama iyi ipuçları veriyoDU. Sitenin feed ine abone oldum ve yaklaşık olarak günde 2 kere siteye yeni içerik eklendimi diye bakıyodum . Siteyi fark ettiğim anda zaten bütün yazılarını okudum . Bazıları basitti , okudum geçtim , bazılarını halaa anlamıyorum . Siteye giriş yok tabii ki ama Google önbelleği ile girmek isteyenler için : LİNK
Site bir kişinin sitesi değil . Yazarlar kısmında "Anadolu Üniversitesi iOS Ekibi " yazıyo ve büyük ihtimalle üniversitenin öğrencileri tarafından yazılıyodu . Ya öğrenciler mezun oldu ya da artık ilgilenmediler ki site kapandı ama kendi tahminimce mezun olup işe başladılar ve geçim kaygısı falan filan onları da sardı .
Bir diğer örnek ise http://getitandroid.com ve android ile ilgili bilgiler yer alıyo .Site kapanmadı ama son yazı 12 Eylül 2011 tarihinde yazılmış. Bu site de zaten tek bir kişi tarafından değil Çanakkale Onsekiz Mart Üniversitesi öğrencileri tarafından yönetiliyodu . Bu sitenin kurucusu olmasa da en aktif yöneticisini tanıyorum . Birebir olmasa da mail olarak sohbetimiz oldu ve sanırım geçen seneye kadar o da öğrenciydi ve şimdi mezun oldu ve çalışıyo . Diğer yöneticiler zaten fazla aktif değillerdi , onlar da karambole gitti .
Üçüncü örneğim de www.programlamadefteri.com olsun. Site halaa aktif ve kimler tarafından yönetiliyo o kadar da umrumda değil . Forum bölümü Android kısmında aktif ama IOS kısmında yok gibi bişey . Bunların da vazgeçtikleri konu videolu dersler . Site ilk açıldığında videolu dersler yapılacak deniyodu ama sadece konuların başlangıç kısımları var ve başka video da çekilmicek galiba .
Bu görüşlerin hepsi tüketici gözünden tabii . Yani "bi site açtın sahip çık kardeşim" mantığı . Ama bi de işin diğer tarafı var . Yani iosprogramlama.blogspot.com sitesinden hiç kar etmediler , getitandroid.com okul bittikten sonra hayatını devam ettiricek kadar popüler değildi , programlamadefteri.com a içerik ekleyenler büyük ihtimalle öğrenci ve onlar da okulları bitip çalışmak zorunda olduklarında siteden kopucaklar . Belki yerlerine başkaları gelicek , belki de site diğer siteler gibi kaybolucak ya da eski bilgilerle dolu olucak . Ama ne olursa olsun bence site kapanmamalıydı . Sonuçta blogspot.com uzantılı bi site ve domain ve hosting e para ödenmiyo .
Bu kadar şey yazdıktan sonra biri de çıkıp doğal olarak "sen yap da görek" diyebilir . Ama kendim de biliyorum ki ben de başlasam illaki bi yerde bırakıcam ve okulun bitmesi yakın olduğundan bu uzun sürmücek . İşte o yüzden hiiçç başlamıyorum . Ama durumlar değişir de yazanların değeri artarsa işte o zaman daha mantıklı düşünürüm . işte o güne kadar ingilizce den türkçeye çeviri IOS programlama kitapları ve paralı video lara devam ...
Kaydol:
Kayıtlar (Atom)