MonthHaziran 2019

SwiftUI: İlk Bakış

Merhaba arkadaşlar bu yazımda sizlere SwiftUI üzerinde yapmış olduğum ilk izlenimlerden bahsedeceğim. Bildiğiniz üzere SwiftUI, Apple tarafından WWDC19 konferansında duyuruldu.

En başta tekrardan bir yeni bir dil mi öğrenicem diye düşünürken SwiftUI üzerinde araştırmalar yapmaya başladım ve Apple’ın sitesinde gördüğüm kod parçacığı aslında çok komplike olan işleri az kod yazarak halledebileceğimizi göstermiş oldu.

Apple SwiftUI sayfasından alınmıştır.

SwiftUI Nedir ?

Better apps, Less Code

SwiftUI, tüm Apple cihazları için az kodla çok iş yapmamızı araçlar ve APIler ile gelişmiş kullanıcı arayüzleri oluşturmamızı sağlayan bir Framework olduğunu söyleyebiliriz.

SwiftUI Üzerinde İlk Denemelerin

SwiftUI sadece iOS 13’ü destekliyor ve iOS 13 üzerinde geliştirmek için XCode 11 Beta sürümünü kurmamız gerekiyor fakat XCode 11 Beta sürümünü kurmak için de macOS Catalina Beta sürümünü kurmamız gerekiyor.

İlk örnek kodlara baktığımda herhangi bir fikrim yoktu fakat SwiftUI üzerinde çalışmalara başlayınca aslında öğrenmenin kolay olduğunu ve yazdığımız kodların temiz ve basit olduğunu farkettim.

SwiftUI Kullanmaya Başladıktan Sonra Farkettiğim Yenilikler

Kendi yaptığım denemelerde UIKit ile SwiftUI arasında oluşan bariz farkları ve özellikleri listelemek gerekirse şu şekilde olur,

AutoLayout Artık Yok

Bildiğiniz üzere UIKit kullanırken tasarımlarımızdan AutoLayout yani sürükle bırak özelliği vardı fakat SwiftUI ile birlikte storyboardlarımızı tamamen kodlayarak hazırlıyoruz.

Karanlık Mod

Açık tema haricinde artık uygulamalarınız geceleri gözlerinizi yormayacak karanlık temaları olabiliyor. Artık geliştiriciler uygulamalarına karanlık tema ekleyebiliyorlar.

Canlı Önizleme

XCode 11’de SwiftUI kullanırken yazdığımız kodların canlı önizlemesini herhangi bir build işlemi yapmadan görebiliyoruz. Bu durum işlemcilerimizi biraz zorlasada bize zamandan kar ettiriyor fakat şu anda işlemcilerimizi zorlama durumu beta süreci içinde geçerli olacak bir durum olabilir.

SwiftUI ve UIKit’i Birlikte Kullanabilirsiniz

Üzülmenize gerek yok SwiftUI’in alması gereken çok yol var. Bu yüzden de UIKit’e tamamen elveda demiyoruz. Ayrıca Xcode 11 ile SwiftUI ile UIKit’i birlikte kullanabiliyoruz

Özet,

Bence SwiftUI’in herkes tarafından kullanılmaya başlaması için en azından bir 2-3 yıl var çünkü şu anda göründüğü kadarıyla sadece iOS 13 için ve macOS Catalina ile kullanılabiliniyor fakat bizim gibi geliştiricilerin bu SwiftUI’ı hızlıca öğrenmeye başlaması gerekiyor.

Şunu da unutmamak gerekiyor ki SwiftUI konusunda öğrenebileceğimiz bir çok şey bulunmaktadır. Bence bu yeni teknolojiyi projelerimizde kullanmamıza daha zaman var fakat erkenden öğrenmeye başlamak ise bize avantaj sağlayacaktır. SwiftUI hakkında daha fazla bilgi edinmek için buraya tıklayabilirsiniz.

Eğer bu yazımı beğendiyseniz ve Apple teknolojileri hakkında yazmış olduğum diğer yazıları merak ediyorsanız buraya tıklayınız.

DataTables Nedir, Nasıl Kurulur, Neler Yapabiliriz ?

Merhaba arkadaşlar bugün sizlere DataTables isimli bir jQuery eklentisinden bahsedeceğim.

DataTables’in ne olduğunu açıklamak gerekirse oluşturduğumuz tablolar üzerinde AJAX kullanmadan veri arama, sayfalama gibi işlemleri yapmamızı sağlıyor daha basit bir şekilde anlatmak gerekirse normalde AJAX, DOM ve SQL ile yapabileceğimiz işleri bunların hiç biri hakkında bilgi ve ya uğraş gerektirmeden bize sunan bir eklenti olduğunu söyleyebiliriz.

DataTables ile Neler Yapabiliriz ?

DataTables ile yapabileceğiniz en temel şeylerden bahsetmek gerekirse

  • Sayfalama
  • Anlık Arama
  • Sütunlar üzerinden sıralama (Tekil ve ya çoğul)
  • Mobil Cihazlara Uyumlu
  • Kolayca Tema Yapılabilinir (Bootstrap 3/4, Semantic UI, Foundation ve DataTables Theme Creator)

bunun haricinde kendisi içinde eklentilerin geliştirilmesine izin veren bir sisteme sahip olması ve açık kaynak kodlu olması da eklentiyi kendimize göre özelleştirebileceğimizi göstermektedir.

Bu saydıklarım haricinde yapabileceğiniz diğer özellikleri de görmek isterseniz buraya tıklayabilirsiniz.

DataTables Nasıl Kurulur/Kullanılır ?

DataTables’i kurmak için 2 adet CSS ve JS dosyalarını sistemimize ekleyip daha sonra basit bir JS kodu ile DataTables’i kullanmaya başlayabiliriz.

CSS / JS CDN

https://cdn.datatables.net/1.10.19/css/jquery.dataTables.min.css

CSS

https://cdn.datatables.net/1.10.19/js/jquery.dataTables.min.js

Javascript

Javascript Kodu

$(document).ready( function () {
    $('#myTable').DataTable();
} );

Javascript kodu olarak bahsetmiş olsam bile en başta da söylediğim gibi DataTables bir jQuery eklentisi olduğu için jQuery ile kodlamamız gerekiyor yani bu da DataTables’dan önce jQuery’i de sistemimize eklememiz gerekiyor.

Peki DataTables’den bahsettim hine de bu işleri ben kendim AJAX, DOM ve SQL bilgimle rahatça yaparım diyebilirsiniz fakat dünyadaki Adobe, Sony, Nasa, Tesla, Amazon gibi firmalar dahi DataTables’ı kullanmaya tercih ediyor.

DataTables hakkında daha detaylı bilgi alabilmek için buraya tıklayabilirsiniz.

Özet,

Bu yazımda sizlere DataTables’in ne olduğundan, neler yapabilirsiniz ve nasıl kurabiliriz konularından bahsettim. DataTables ile Tablolar üzerinde herhangi bir ekstra işlem yapmadan tablolar üzerinde arama, sayfalama gibi işlemleri hızlıca yapabiliriz.

Bu yazımı beğendiyseniz ve Javascript hakkında yazmış olduğum diğer yazıları merak ediyorsunuz buraya tıklayınız.

AJAX Nedir ? jQuery ile Ajax Kullanımı

Merhaba arkadaşlar bu yazımda sizlere AJAX’ın ne olduğundan ve jQuery ile kullanımından bahsedeceğim.

AJAX Nedir ?

Ajax, Asynchronous JavaScript And XML (Eşzamansız Javascript ve XML) bir tekniktir. AJAX’ın temel amacı kullanıcıya web sayfasını tamamen yeniden yükletmeden bazı işlemlerin tamamlanmasını sağlamaktır.

AJAX’ın Çalışma Prensibinden bahsetmek gerekirse şu fotoğrafı kullanmamız yeterli olacaktır.

Şimdi bunu açıklamamız gerekirse öncelikle Tarayıcımızda bir işlem gerçekleşir ve bir XMLHttpRequest objesi oluşturulur ve gönderilir. Gönderilen HTTPRequest işleme alınır ve bir geri dönüt oluşur bu geri dönüt de tarayıcıya tekrar geri gönderilir. Böylece arka plan da bir sürü işlem olurken kullanıcı direkt olarak sonuç ile karşımıza çıkar.

AJAX’ın ne işe yaradığını kısaca özetlemek gerekirse

  • Sayfa yüklendikten sonra Web Sunucusundan veri okur.
  • Sayfayı tekrar açmadan sayfa içerisinde değişiklik yapar
  • Verileri Web Sunucusuna arka planda gönderir.

jQuery ile Ajax Kullanımı

AJAX tekniğini saf Javascript ile sizlere aktarmak daha karmaşık olacağından jQuery ile kullanımından bahsetmek istiyorum.

Elimizde bir İletişim Formu olduğunu varsayalım ve ben gönder butonuna bastığım zaman AJAX tekniği ile sonucun karşıma çıkmasını istiyorum.

O zaman öncelikle yapmamız gereken 2 şey var öncelikle FORM elementimize bir id değeri ve onsubmit=”return false;” ve Gönder input/button umuza da hine bir id değeri atayalım. Bu işlemleri yaptıktan sonra jQuery ile bu işlemi 3 yöntem ile yapabiliriz bunlar $.post, $.get, $.ajax yöntemleri şimdi bunlardan bahsetmeye başlayalım.

Form elementine ve Gönder butonuna gerekli işlemleri yaptıktan sonra şöyle bir kalıpta kodlarımızı yazacağız.

$("#iletisim_gonder").on("click",function(e){

        let formData = $("#iletisim_form").serialize();

        // VERİ GÖNDERME işlemi burada yapılacak

        e.preventDefault();
    });

Burada yazılı olan kodlar şu işlemi yapmakta id’si iletisim_gonder olan elemente tıklandıktan sonra id’si iletisim_form’un içindeki tüm inputlar “name: value” tipinde JSON formatına(serialize) dönüştürülüyor ve preventDefault ile ise de butonun tıklandıktan sonra bu içeride yapılan işlemler haricinde bir işlem yapmasını engellemiş oluyoruz.

$.post

        $.post('iletisim_gonder.php', formData, function(response){
            if(response.hata){
                alert(response.hata);
            }else{
                alert("Ekleme başarılı!");
            }
        }, 'json');

$.post fonksiyonu gördüğünüz üzere 3 parametre alıyor bunlardan ilk çekilen verilerin hangi sayfaya gönderileceği ikinci parametresi gönderilecek veriler ve son parametre ise bir Callback fonksiyonudur.

$.get

$.post('iletisim_gonder.php', formData, function(response){
            if(response.hata){
                alert(response.hata);
            }else{
                alert("Ekleme başarılı!");
            }
        }, 'json');

$.post fonksiyonundan tek farkı $.post yerine $.get yazmamız.

$.ajax

$.ajax yöntemi aslında $.post ve $.get yöntemlerinin biraz daha kalıplara oturtulmuş halidir en sade haliyle kullanımını göstermek gerekirse şöyle bir kod parçacığı karşımıza çıkar

 $.ajax({
        type: METOD,
        url: URL,
        data: Form Data,
        dataType: DATA TYPE,
        success: function(response){
            
        }
    });

$.post ve $.get ‘de 3 parametre alan bir fonksiyon şeklinde çalışıyordu. $.ajax fonksiyonu ise 1 adet JSON veri türünde değer gönderdiğimiz bir fonksiyon olduğunu farketmişsinizdir.

  • type alanında hangi metod ile veri gönderimi yapacağınızı yazıyorsunuz yani POST ve ya GET yazmanız gerekicek.
  • url kısmına hangi dosyaya gönderim yapacağınızı
  • data kısmına hangi dataları göndericeğinizi
  • dataType bize dönücek sayfayı nasıl okumamız gerektiğini
  • success kısmında ise eğer gönderim başarılı olursa ne olacağını belirtmemiz gerekiyor.

$.ajax kullanımında daha detaylı bilgi almak için buraya tıklayınız.

Ajax ile Nerelerde Kullanılır

  • İl, İlçe seçimi
  • Arama sonuçlarını anlık gösterme
  • Herhangi bir FORM gönderirken sayfa yenilenmesini engelleme
  • Otomatik Yazı Tamamlama

gibi alanlarda ve daha fazlasında rahat bir şekilde kullanabilirsiniz.

Özet,

Bu yazımda sizlere AJAX Tekniğinin ne olduğundan bahsettim ve AJAX tekniğini jQuery ile nasıl kullanabileceğinizi gösterdim. AJAX, sayfa yenileme işleminin önüne geçen ve web sunucusuna arka plandan veri gönderme ve ya arka plandan veri alıp sayfa yenilemeye duymadan kullanıcıya bu aldığımız verileri gösterebileceğimiz bir tekniktir.

Eğer bu yazımı beğendiyseniz ve Javascript adına yazmış olduğum diğer yazıları merak ediyorsanız buraya tıklayabilirsiniz. Ayrıca jQuery’nin ne olduğunu bilmiyorsanız “jQuery Nedir ?” adlı yazımıda incelemenizi tavsiye ederim.

Bilgisayar Mühendisliğinde 1 Yıl

Merhaba arkadaşlar uzun süredir yazı atmadığım bloğuma tekrardan paylaşım yapmaya karar verdim ve Nisan’dan beri paylaşım yapmadığımı düşünürsek bu 2.5 aylık süreçte neler yaptığımı ve Kocaeli Üniversitesinde Bilgisayar Mühendisliği bölümünden sizlere biraz bahsetmek istedim.

Öncelikle bu bölümde ilk yılımı kısaca özetleyecek olursam az okula gidip kendime daha çok bir şeyler katmayı düşündüğüm bir yıl oldu. Şimdi dönem dönem bu üniversite ve bu bölümde neler yaşadığımdan bahsetmeye başlayayım.

Okulda İlk Gün

Okulda ilk günüm aslında benim için heyecanlıydı bir önceki senemde Gazi Üniversitesinde Kimya Mühendisliği okurken içimde olan hoşnutsuzluk Kocaeli Üniversitesi Bilgisayar Mühendisliğinde olmamıştı genel olarak bu değişikliğin sebebini sorduklarında özüme döndüm diye cevap veriyordum. Aslında okuldaki ilk dersiniz de biraz heyecanlı oluyorsunuz çünkü tanıdığınız kimse yok herkes farklı yerlerden gelmiş ben genel olarak yeni insanlarla tanışmayı seven bir insanım yanıma oturan ilk kişiye “Merhaba ben Aydın” diyerek sohbet muhabbet etmeye başladığım için insanlarla tanışmam çok zor olmadı tabi okula çok fazla uğramayıp kaldığım yurtta ve ya bir kafede kendime bir şeyler katmaya çalıştığım için o tanıştığım insanlarla fazla arkadaşlık kuramadım. Genel olarak her üniversitede ilk haftanız tamamen hocalarınızla ve sınıftan bir kaç kişiyle tanışma haftası gibidir.

Bu Tanışma Haftası Faslı Geçtikten Sonra Ne Oldu ?

Başlangıçta kendime düzenli bir şekilde okula gitme sözü vermiş olsamda bunu çok yerinde tutamadım bir noktadan sonra şunu farkettim okul bana ilk sene de katacağı şey çok az çünkü direkt bölümle alakalı ders sayısı çok az bu dersler Programlama, Bilgisayar Laboratuvarı, Bilgisayar Mühendisliğine Giriş dersleri oluyordu. Bu derslerden genel olarak bahsetmek gerekirse Programlama dersinde C ile Programlama Mantığını nasıl Algoritma kurulabileceğini öğretiyorlardı daha sonra bu öğrendiğimiz bilgileri Bilgisayar Laboratuvarı üzerinde haftalık Quizz ler şeklinde pekiştirmemiz sağlanıyordu. Bilgisayar Mühendisliğine Giriş dersi ise genel olarak Bilgisayar kavramının tarihçesinden başlayıp Programlama Dilleri nedir ?, Flow Charts vb. konuları bize sözlü olarak anlatıyordu. Aslında bir nevi Bilgisayarların tarihçesini öğreniyorduk da diyebiliriz. Bunların haricinde genel olarak Matematik, Fizik, Lineer Cebir gibi dersler de gördük.

Okula başladıktan sonra şunu farketmeye başladım evet okul önemli fakat sadece bu okula devam ederek ve kendime bir şey eklemeyerek bitirmek mezun olunca ya düşük maaşla işime başlamama ya da işsizler kervanına katılmama sebeb olacağını farkettim bu durumun okulun verdiği eğitimle bir alakası yoktu aslında bu durumun temel sebebi bölümün çok fazla üniversitede olması ve fazla mezun vermesinden kaynaklıydı bu yüzden sadece bölümüne devam ederken kendine okulun dışında bir şeyler eklemeyi başaranlar ileride güzel bir maaş ve güzel bir iş sahibi olabileceğini farkettim bu da beni şöyle bir felsefeye itti “insanlar eğlenirken çalışırsam günün sonunda benim yüzüm gülecek” Bu yüzden öncelikle mezun olduktan sonra kendimi ne olarak tanımlamak istediğimi düşündüm ve kendimi bir Web Developer olarak hayal ettiğimde mutlu olduğumu farkettim ve okula başlamadan öncede sahip olduğum programlama bilgime güvenip okula fazla gitmemeyi ve bu artan zamandada kendime bir şeyler katmayı tercih ettim. Gelecekte ne geliştiricisi olduğuma karar verdikten sonra bu alandaki artılarımı ve eksilerimi belirlediğim bir liste oluşturdum ve backend konusunda bilgili olsamda frontend kısmında ise aşırı kötü olduğumu ve bu yüzden önce css deki eksikliklerimi kapatıp herhangi bir framework’e ihtiyaç duymadan kendi başıma bir tasarımı nasıl yapabilirim sorusuna bir çözüm getirdim daha sonra ise bu tasarımlara interaktif özellikler verebilmek adına javascript konusunda kendimi geliştirmeye başladım şanslıyım ki hızlı öğrenen bir insanım.

CSS ve JS üzerindeki eksikliklerimi tamamlayınca listemdeki eksiler backend teknolojileri olarak sadece PHP bilmek oldu bu yüzden NodeJS öğrenerek bu adımda bir adım attım ve aslında farkettim artılarım listesine koyduğum backend tecrübesinin aslında sadece PHP kullanarak yapılacak şeylerle sınırlı olduğunu gördüm. NodeJS, bu konuda ufkumu açan bir teknoloji oldu daha sonra Django’yuda listeme ekleyerek kendimi web sektöründe iyi bir yer edinebilecek bir kişi haline gelmeye başladığımı hissetmeye başladım.

İlk Dönem Bitti İkinci Dönemde Neler Oldu ?

İkinci dönemin başında aslında kendimi yeni teknolojilerle eğitmeye başladığımı ve ufkumun biraz daha açıldığını farketmiş olsam bile hala bir şeyler geliştirmemiş olmak içimde bir dert olmuştu. Tam da bu zamanlarda Okulda bulunan Gömülü Sistemler Laboratuvarında direkt olarak okulun kullanacağı bir projede kendimi bulmak aslında beni mutlu etti. O kadar zaman harcayıp öğrendiğim bilgileri sonunda birinin işine yarayabilecek şekilde kullanabiliyordum. Proje temel de basit olsa bile karmaşıklığı olan bir projeydi ve projenin bana ilk gelen hali gerçekten kötü haldeydi hem orada yazılmış kodları düzeltmek hem de projeyi ilerletmeye devam ettim. Tabi bu arada proje ile uğraşırken az olan arkadaş sayımı Laboratuvarda gönüllü olarak çalışan öğrenciler ile tanışma fırsatı yakaladım.

Genel Olarak Bilgisayar Mühendisliğinde 1 Yılda Bana Neler Kattı

İlk olarak Yazılım Sektörünün aslında çok büyük olduğunu ve geleceğe de yön vericek olan sektörlerden bir tanesi olduğunu farkettim. Bir Yazılımcı olarak yapabileceğimiz şeylerin bir sınırı olmadığını ve bölüm içinde tanıştığım bilgili insanlardan asıl başarının çalışmaktan ve yeni teknolojileri sürekli olarak takip etmekten ibaret olduğunu ve öğrendiğim her yeni teknoloji ile ufkumun biraz daha genişlediğini farkettim.