Kategori arşivi: Genel

IOS deep linking ve universal links nedir & nasıl yapılır

Deep linking, türkçe ifade etmeye çalışırsak: derin bağlantılama;

Bildiğiniz gibi, bağlantıları web sitelerin içeriğine ulaşmak için kullanırız,

http://www.ftorun.com gibi veya site içerisindeki bir bağlantı

http://www.ftorun.com/programlama/c-sharp/webconfigde-deger-tutmak.aspx gibi.

Bu adresler sizin direk olarak istediğiniz web sayfayasına ulaşmanızı sağlar.

Ancak bir mobil uygulama geliştirdiysek ve uygulama içerisindeki bir sayfaya direk ulaşma ihtiyacımız olursa ne yapacağız, bu tarz durumlar için URL şemaları tanımlamamız gerekiyor. Uygulamamızı oluştururken mesela myapp şemasını kullanmayı seçtiğimiz zaman myapp:// yazarak herhangi bir başka uygulama üzerinden veya web sitesinden uygulamanızı kolayca açabilirsiniz.

Peki uygulamanızın içerisindeki özel bir içeriğe bu adresten direk ulaşmak istersek ? O zaman da myapp://takvim yazarak içerisine takvim parametresini göndermiş oluruz, burada gönderdiğimiz parametre tamamen bize kalmış bu noktada hiyerarşik düzenli bir yapı kullanarak uygulamanın bütün alanlarına kolayca dışarıdan erişim sağlayabiliriz.

Peki ama bizim bir web sitemiz var ve bu web sitesine uyumlu bir de mobil uygulama yaptık.  Mobil  uygulama üzerinden web sitesine girmeye çalışıldığında da uygulama yüklüyse uygulamanızın ilgili kısmının açılmasını istiyoruz. Eminim bu şekilde çalışan bir çok uygulama görmüşsünüzdür. Şimdi kendi uygulamanızda bunu nasıl gerçekleştirebileceğinizi anlatmaya çalışacağım.

IOS 9dan önce web sitenizi uygulamanız ile entegre etmek için webden mobil cihazı algılayıp kendi custom şemanıza yönlendirme yapmanız gerekiyordu, IOS 9 ile birlikte apple “IOS Universal Link” sistemini getirdi, böylelikle uygulamanız ve web siteniz ortak bir şemayı kullanabilecek.

Peki neler yapmamız gerekiyor.

1. Apple geliştirici sitesinden App Id  Associated Domains düzenlemesi: developer.apple.com sitesine girip App IDs kısmından uygulamanızı daha önceden oluşturmuş olmalısınız, oradan edit seçeneğini seçerek Associated Domains özelliğini aktif yapalım.

2. XCode projemizden uygulamamızın Capabilities kısmını aktif edip ardından aşağıda yer alan domains kısmından applinks:www.mywebsite.com şeklinde ekleyelim.

3.Web sitemizde yapmamız gereken düzenlemeler: web sitemizin bize ait olduğunu ve onu mobil uygulamanın yansıması olarak kullanacağımızı apple’a (bir nevi) inandırmak için uygulamamızın ana dizinine apple-app-site-association isimli bir dosya oluşturmamız gerekiyor.

Kısaca AASA (apple-app-site-association) dosyası da denilen bu dosyanın yapısı şu şekilde olmalı:

{
  "applinks": {
    "apps": [],
    "details": [
      {
        "appID": “JHGFJHHYX.com.facebook.ios",
        "paths": [
          "*"
        ]
      }
    ]
  }
}

Dosyayı oluşturduktan sonra uygulamanın ana dizinine eklediğinizde ve şu adrese girdiğinizde dosyayı gördüğünüzden emin olun

https://<<sitenizin_adresi>>/apple-app-site-association 

ayrıca şunlara dikkat edin:

  • Dosyanın uzantısı olmadığından emin olun, adı direk “apple-app-site-association” olsun.
  • Siteniz HTTPS üzerinde çalışmalı.
  • Sunucunuzda application/json MIME tipi tanımlanmış olsun.
  • dosyanın büyüklüğü 128kb ı geçmemeli.

işiniz bittiğinde bu siteden kontrol edebilirsiniz:

https://branch.io/resources/aasa-validator/#resultsbox

Artık uygulamamıza IOS evrensel bağlantılarını neredeyse kurduk ve web sitemiz ile bağladık geriye bir tek bunu uygulamanın içerisinden yakalamak kaldı.

Uygulama içerisinde appdelegate içinden

application:continueUserActivity:restorationHandler

metodunu kullanarak gelen adres içeriğine ulaşabiliriz,


func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([Any]?) -> Void) -> Bool {
    print("Continue User Activity called: ")
    if userActivity.activityType == NSUserActivityTypeBrowsingWeb {
        let url = userActivity.webpageURL!
        print(url.absoluteString)
    }
    return true
}

Algoritma ve Akış Diagramları

ALGORİTMANIN HAZIRLANMASI

Algoritma,herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir.Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir.Diğer bir deyişle algoritma verilerin bilgisayara hangi çevre biriminden girileceğinin,problemin nasıl çözüleceğinin,hangi basamaklardan geçirilerek sonuç alınacağının,sonucun nasıl ve nereye yazılacağının sözel olarak ifade edilmesi biçiminde tanımlanabilir.

Algoritma hazırlanırken,çözüm için yapılması gerekli işlemler,öncelik sıraları gözönünde bulundurularak ayrıntılı bir biçimde tanımlanmalıdırlar. Aşağıda algoritma hazırlanmasına ilişkin örnekler yer almaktadır.

ÖRNEK 1:Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:

AlgoritmaAdım 1-Başla
Adım 2-Birinci sayıyı oku
Adım 3-İkinci sayıyı oku
Adım 4-İki sayıyı topla
Adım 5-Dur

Algoritmaya dikkat edilirse işlemlerin sıralanmasında,işlem önceliklerinin gözönünde bulundurulduğu görülür.Ayrıca algoritma yazımı sorun çözümünün başladığını gösteren “BAŞLA” ifadesi ile başlamakta ve işlemlerin bittiğini belirten “DUR” ifadesi ile sona ermektedir.

AKIŞ ŞEMALARI(DİYAGRAMLARI)

Okumaya devam et

SQL Dersleri – 1

Bu yazıda SQL komutlarının işlevlerini örneklerle anlatmaya çalışacağım umarım birilerine faydası dokunur.

Kısaca SQL‘den bahsedersek; SQL, ingilizce “Structured Query Language” kelimelerinin baş harfleri ile oluşturulmuş olup türkçesi “Yapısal Sorgulama Dili” dir, bir programlama dili değildir. SQL ile veri tabanı üzerinde işlem yapabilir,kayıt ekleyebilir, olan kayıtlar değiştirebilir, silebilir veya bu kayıtlardan listeler oluşturulabiliriz.

başlıca sql komutları

CREATE TABLE tabloAdı

–Yeni bir tablo yaratmak için kullanılır.

ALTER TABLE tabloAdı

–Sütun eklemek, sütunun tipini veya uzunluğunu değiştirmek veya yapısal değişiklikler yapılması için kullanılır.

DROP TABLE tabloAdı

–Tabloyu silmek için kullanılır.

CREATE VIEW goruntuAdı

–SQL görüntüsü oluşturmak için kullanılır.

DROP VIEW goruntuAdı

–Görüntüyü siler.

CREATE INDEX indeksAdı

–Tablonun veya (en azından bir) sütun adı üzerinde indeks oluşturmak için kullanılır.

DROP INDEX indeksAdı

–Yaratılan indeksleri veri tabanından kaldırmak için kullanılır

Veri işlemleri için:

–SELECT :

SELECT ad,soyad uyeler yas=16

–Yaşı 16 olan üyelerin ad ve soyadlarını gösterir

–UPDATE :

UPDATE uyeler SET ad = ‘ali’ WHERE soyad = ‘pazarcı’

–soyadı ‘pazarcı’ olan üyelerin adını ‘ali’ ile değiştir

–INSERT :

INSERT INTO uyeler VALUES (‘Ahmet’, ‘Küçükoğlu’,26)

–Yeni bir kayıt ekler

–DELETE :

DELETE FROM uyeler WHERE yas>40

–yaşı 40 dan büyük olan üyeleri siler

Telekom’dan 8 kat yavaş internet bağlantısı

Turk Telekom bu aralar reklamlarda duyurduğu VDSL2 nin reklamını yapadursun, halihazırda kullandığımız ADSL hızları yerlerde sürünür oldu.

Bu aralar server’ı yurtdışında olan sitelere erişim hızı oldukça düştü, 1MB olan bağlantım Türk Telekom‘un kendi hız testinde 847.4 kbps/231.1 kbps çıktı ama speedtest.net sitesinden farklı serverlarda test ettiğimde yurt dışına doğru hız oldukça düştü. Bakalım bu işin sonu neye varacak !

Istanbul : adsl-ist

 

eskişehir : adsl-esk

 

paris : adsl-prs

 

washington : adsl-was

Google Moon yenilendi

Google‘un giderek tüm evreni izlemek isteyeceğinden artık adım gibi eminiz. Geçen ay Google Sky özelliği ile uzaya adım atan Google, hazır fezaya çıkmışken Dünya‘mızın biricik uydusu Ay’a da bir revizyon yapayım diye düşünmüş olacak ki Google Moon‘u yeniledi. Artık Ay yüzeyindeki çeşitli yerlerde çeşitli bilgiler görülebiliyor. Üstelik Astronot simgesi ile birlikte.
Google Moon artık içerisinde bir çok “sürpriz yumurta” barındırıyor. Ayrıca çeşitli yerlerde Apollo Astronotlarının çekimlerinden yararlanılarak Street-View özelliğini de ekledikleri Google tarafından açıklandı.
new-google-moon1.jpg