Yaklaşık 2 aydır nvm kullanıyorum ve node.js versiyonları arası geçişte büyük kolaylık sağlıyor. Varsayılan versiyonu değiştirmem yükseltmem gerektiğinde biraz araştırma yaparak aşağıdaki komutları buldum. Umarım sizin de işinize yarar.
12345678
# İstediğiniz versiyonu yükleyin
nvm install 8.9.4
# Varsayılan olarak kullanın
nvm alias default 8.9.4
# Daha sonra node -v yazarsanız varsayılan versiyonu verecektir.
Yukardaki gif Javascript geliştiricileri için oldukça büyük anlam ifade etse gerek. Javascript geliştiricleri yıllarca asenkron kod yazmak için callback fonksiyonlarını ihtiyaç duyuyorlardı.
Sonuç olarak birçoğumuz “callback hell” ile karşı karşıya gelmek zorunda kaldık.
Neyse ki daha sonra ise Promise geldi. Bize callback fonksiyonlarından daha organize bir yapı sundu. ve halen birçok geliştirici tarafından sıklıkla kullanılmakta.
Son olarak ise Async/Await'in eklenmesiyle daha okunabilir ve bakımı kolay bir hale geldi.
Nedir Bu Async/Await ?
Async/Await uzun zamandır beklenen asenkron işlemleri daha anlaşılması kolay bir hale getiren Promise tabanlı Javascript özelliğidir.
Şimdi ise async/await fonksiyonuna nasıl dönüştüreceğimizi görelim. ilk olarak async anathar kelimesini fonksiyonuna ekliyoruz.
Daha sonra ise .then() kısmında aşağıdaki gibi değişiklik yapıp await ekliyoruz.
Facebook mühendisleri tarafından geliştirilmiş olan Yarn, hız ve güvenlik konusunda npm'den daha iyi olduğuna söz veriyor.
Yarn kurulumu
Yarn'ı kurmak için birçok yol bulunuyor. Eğer npm'e sahipseniz. npm ile yükleyebilirsiniz.
12
npm install -g yarn
Başka bir yol ise (Yarn'ı geliştiren takımında önerdiği) işletim sistemizin native paket yöneticisi ile yüklemek.Eğer bir Mac kullanıcısıysanız homebrew ile yükleyebilirsiniz.
// Character veri tipivarcharacter:Character="N"// String Veri TipivarmyName:String="Nazır"// Int Veri TipivarmyNumber:Int=13// Float ve Double veri tipivarnumber:Float=4.2varnumber2:Double=1.1// sabitlerde bu şekilde yazılabilirletmyName:String="Nazır"
if you are new in iOS development and using Interface Builder for creating UI elements. Maybe you want to learn how can do with code. In this post I will talk about this and give a snippet.
Bu yazımda Apache Cordova için iOS uygulamalarında uzaktan hata ayıklama nasıl yapılır onu göstereceğim.
Hata Ayıklamayı Etkinleştirme
ilk olarak Safari'nin “Develop Menu” kısmını etkinleştirmeniz gerekmekte. Bunun için Safari > Preferences ve “Show Develop Menu” checkbox'unu seçilmiş oldugundan emin olalım.
Şimdi ise iOS cihaz üzerinden gidip Web Denetçisini aktif hale getirmek.
Bunun için Ayarlar > Safari > ileri Düzey ve Web Denetçisini aktif hale getirin.
Safari ile Hata ayıklama
Gerekli ayarları yaptıktan sonra ise hata ayıklamaya geçebiliriz. Öncelikle uygulamayı cihazımızda başlatıyoruz. (Cihazımız USB ile bağlı olmalı) Daha sonra ise Safari'de Develop Menusünden Cihazımızı seçerek hata ayıklama işlemini başlatabiliriz.
Daha sonra ise konum bilgisi alabilmek için Geolocation pluginini ekliyoruz.
1
ionic plugin add cordova-plugin-geolocation
Google Maps'in script'ini index.html‘e ekliyoruz.
1234567891011121314151617
<body>
<ion-app></ion-app>
<!-- Google Maps -->
<script src="http://maps.googleapis.com/maps/api/js"></script>
<!-- cordova.js required for cordova apps -->
<script src="cordova.js"></script>
<!-- Polyfill needed for platforms without Promise and Collection support -->
<script src="build/js/es6-shim.min.js"></script>
<!-- Zone.js and Reflect-metadata -->
<script src="build/js/Reflect.js"></script>
<script src="build/js/zone.js"></script>
<!-- the bundle which is built from the app's source code -->
<script src="build/js/app.bundle.js"></script>
</body>
Bunları ekledikten sonra angular/core‘dan OnInit'i ekliyoruz.
12
import {Component, OnInit} from '@angular/core';
Konum almak için ise Geolocation'i ekliyoruz.
12
import {Geolocation} from 'ionic-native';
Daha sonra fonksiyonumuzu yazıyoruz.
123456789101112
loadMap() {
Geolocation.getCurrentPosition().then((resp) => {
var latlng = new google.maps.LatLng(resp.coords.latitude, resp.coords.longitude);
var myOptions = {
zoom: 8,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById("map"), myOptions);
});
}
Eğer Typescript yazıyorsanız Google Map'sin hata verdiğini göreceksiniz.
12345
TypeScript error: /Users/nazirdogan/ionic-maps/app/pages/home/home.ts(21,24): Error TS2304: Cannot find name 'google'.
TypeScript error: /Users/nazirdogan/ionic-maps/app/pages/home/home.ts(25,20): Error TS2304: Cannot find name 'google'.
TypeScript error: /Users/nazirdogan/ionic-maps/app/pages/home/home.ts(27,21): Error TS2304: Cannot find name 'google'.
TypeScript error: typings/index.d.ts(2,1): Error TS6053: File 'typings/globals/google.maps/index.d.ts' not found.
Bu hatanın nedeni ise Typescript Definition dosyalarının olmamasıdır.
Mobil uygulamaların birçoğu servis olmadan çokta birşey ifade etmezler. ve birçok uygulama REST ve benzeri servisleri kullanmaktadır. Şimdi bizde yapacağımız uygulama ile basit bir servis çagırısı yapıp veriyi ekrana basacağız.
Yapacağımız uygulama basit bir hava durumu uygulaması olacak. Servisden veriyi alma dışında Geolocation pluginini kullanımını göreceğiz. Ayrıca ionic'in yeni CLI yeni özelliğinden bir tanesini kullanacağız.
Şimdi uygulamayı oluşturarak başlayalım.
12
ionic start Ionic2Weather blank --v2
cd Ionic2Weather
uygulamayı oluşturuduktan sonra ilk iş olarak servis için provider'i üretiyoruz.
Bunu Ionic CLI'da bulunan generate komutu ile yapıyoruz.
Not : Bu komut ile sayfa sayfa'da generate edilmekte. Dökümanda bulabilirsiniz.
1
ionic g provider MyData
yukaradaki komut ile Ionic bizim için yok ise bir providers klasörü oluşturuyor. Ayrıca verdiğimiz isimde bir klasör daha oluşturup içerisinde aynı isimle typescript dosyası oluşturuyor.
Bir önceki yazımda Ionic 2' nin nasıl kurulacağından bahsettim.
Bu yazımda ise proje yapısınıdan bahsetmek ve önemli birkaç dosyayı göstermek istiyorum.
Not:Görseldeki editor Visual Studio Code ve ionic'in oluşturdugu blank projedir.Sadece homeSercives.ts dosyası eklenmiştir.
Projemizde Ionic 1.x de oldugu gibi platforms, plugins ,hooks gibi Cordova'nın eklediği klasörler mevcut.
node_modules klasörü ve diğer config dosyaları üzerinde durmayacağım. config dosyalarını biraz karıştırarak neler olduguna bakabilirsiniz.
Bizim için en önemli klasör app klasörü. app klasörü pages içersinde html'lerimiz ve .ts (typescript) dosyaları bulunmaktadır. ayrıca platformlara özel yazdığımız stillerin bulunduğu theme klasörü yer almaktadır. Ayrıca ana root'ta bir app.ts dosyası bulunmaktadır. adındanda anlaşılacağı üzere uygulama bu dosyadan başlamaktadır.
şimdi app.ts , home.ts , home.html ‘e bakalım.
Proje yapısına dair söylenebilecek çok şey olsada şimdilik bu kadar. İlk bakışta biraz karışık gelebilir ama konsepti öğrendikten sonra oldukça modüler ve kullanışlı geleceğinden eminim. ionic 1.x de şikayet ettiğim birçok şeyden kurtulmuşa benziyor. Ionic 2' ye başlamadan önce Angular 2 ve Typescript çalışmanızı şiddetle tavsiye ediyorum.
Javascript dünyası son bir iki yıldır baş döndürücü bir şekilde ilerliyor. Node.js'in çok hızlı yükselişi ve ES6 ile Javascript'in yeni özelliklere kavuşması Javascript'i vazgeçilmez bir dil yaptı.
Buna bağlı olarak gelişen Framework'ler (Angular,React) ve dillerde (TypeScript) bundan nasibini aldı. Şu an bütün tarayıcılar bütün özellikleri desteklemesede endişelenecek birşey yok.Bunun için geliştirilen çözümlerde mevcut ( es6-shim ve Babel,TypeScript(programlama dili) gibi araçlar)
Ionic 2'de Ionic 1.x gibi Angular üzerine kurulu bir framework. 1.x'den farkı Angular 2' yi kullanması. Angular 2 ise Angular 1.x düşünüldügünde major bir güncelleme değil komple yeniden yazılmış bir framework diyebiliriz.
Angular 1.x öğrenen ve kullanan birisi için kulağa kötü gibi gelsede front-end geliştiricileri için birçok sorunu ortadan bir değişiklikler getirdiği kesin. Bende yeni yeni Angular2'ye alışmaya çalışan biri olarak daha büyük projeler için oldukça iyi olacağı kanaatindeyim.
Ionic 2 ye daha önceden göz gezdirip geçmiştim.Hazır oldugu kanaatinde değildim. Şimdi biraz daha gelişen framework birçok sorunu çözmüş gibi gözüküyor. Bu yazıda ve bunun devamı olacak yazılarda Ionic 2 ye yönelik örnekleri göstermeye çalışacağım. Hemde kendim öğrenmiş olacağım :)
Hadi başlayalım.
Cordova ve Ionic
ilk olarak Cordova ve Ionic'i yüklüyoruz. ( Sisteminize Node.js'i yüklediğinizden emin olunuz.)
1
npm install -g cordova ionic@beta
veya
1
npm update -g cordova ionic@beta
Not: Eğer Ionic 1.x ile geliştirme yapıyorsanız endişe etmenize gerek yok. Eski kurulumlarınız ve projeleriniz oldugu gibi kullanımına devam edebilirsiniz.
Proje Oluşturma
123
ionic start Ionic2İlkUygulama blank --v2
cd Ionic2İlkUygulama
Not: Proje ilk oluşurken sabırlı olunuz npm paketlerinin yüklenmesi zaman alabilmektedir.
Daha sonra Android platformunu ekliyoruz.
1
ionic platform add android
Not :Eğer MacOS üzerinde geliştirme yapıyorsanız iOS platform otomatik olarak eklenmektedir.