Angular modüler bir yapıya sahiptir. Uygulumanızı parçalara bölebilir ve tekrar kullanabilirsiniz. Diğer frameworklere göre daha esnek bir yapıya sahiptir. Sizlere daha fazla kontrol edebileceğiniz alanlar sunar. Diğer SPA uygulamalarından ayıran en büyük farkı ise paketler ile birlikte gelmesidir.
Angular javascript tabanlı açık kaynak kodlu yazılım geliştiricilerin web, mobil ve masaüstü ortamda kolay uygulama geliştirmelerini sağlayan bir platformdur.
Angular Framework Javascript dilini kapsayan TypeScript ile yazılmıştır.
İlk adıyla AngularJS olan platform şu anda “2+” diye sınıflanan sürümlerle Angular adını almaktadır. AngularJS ilk sürümünü Ekim 2010 yılında yayınlamıştır ve o zamandan günümüze Google ekibi tarafından geliştirilmeye devam edilmektedir.
Angular 2 nin ilk stabil sürümü 14 Eylül 2016 tarihinde Google tarafından yayınlanmıştır ve Angular 2 tam anlamıyla AngularJS in baştan yazılmış halidir.
TypeScript, Microsoft çalışanı Anders Hejlsberg tarafından tasarlanan açık kaynaklı programlama dilidir. TypeScript hem dil hem de araçlar kümesidir. TypeScript, JavaScript’in ek özellikler almış hali de denilebilir. İstemci tarafında (client-side) veya sunucu tarafında (server-side) çalışabilen JavaScript uygulamaları geliştirmek için kullanılabilir.
Kavramsal olarak JavaScript’i daha kolay ve güvenli bir şekilde yazmamızı sağlayan “sanal editör” olarak da düşünebiliriz. Büyük ve karmaşık kod yapısına sahip projelerde verimliliği arttırır. Uzun JavaScript satırlarını daha az komutla ifade etmemizi sağlar. Nedeni ise JavaScript’in fonksiyonel olmasına karşın TypeScript’in nesne yönelimli olmasıdır. Bunun yanı sıra TypeScript kodunu anlamak daha kolaydır. Eğer JavaScript biliyorsanız bunu TypeScript’de de kolayca kullanabilirsiniz. Yani var olan JavaScript kodlarınızı TypeScript dosyanızın içersine ekleyip derleyebilirsiniz.
JavaScript büyük iş veya projeler için kullanıldığında belirli zorluklar ortaya çıkarmaktadır. C#, Java ve C++ gibi statik olarak derlenen diller, geliştiricinin derleme işlemi sırasında hata denetimi gerçekleştirirken, JavaScript ise çalıştırılıncaya kadar bu hata denetimini gerçekleştiremez. Microsoft, TypeScript ile birlikte derleme aşamasında hata denetimi yapılabilen bir JavaScript sunmayı amaçlamıştır.
Single Page Application, sunucudan yeni sayfaların tamamını yüklemek yerine geçerli sayfayı dinamik olarak yeniden yazarak kullanıcıyla etkileşime giren bir web uygulaması veya web sitesidir.
SPA, her tıklamayla yalnızca ihtiyacınız olanı gönderir ve tarayıcınız bu bilgileri işler. Bu, sunucunun yaptığınız her tıklamayla tam sayfayı yeniden oluşturduğu ve tarayıcınıza gönderdiği geleneksel bir sayfa yüklemesinden farklıdır.
Bu parça parça, istemci tarafı yöntemi, kullanıcılar için yükleme süresini daha hızlı hale getirir ve bir sunucunun göndermesi gereken bilgi miktarını çok daha az ve çok daha uygun maliyetli hale getirir.
Popüler olan SPA Frameworkleri şunlardır;(Angular, Vue, React)
- ANGULAR:Google tarafından geliştirilen ve desteklenen SPA(Single Page Application) uygulama yapılmasına olanak sağlayan javascript kütüphanesidir.
- REACT:React’ ı diğer SPA uygulamalarından ayıran en büyük farkı mobil dünyasındaki başarısıdır. React Native ile birlikte ios ve android çıktısı alabilirsiniz. Angulara göre en büyük farkı Virtiual DOM olmasıdır. Angular’ da projenizin optimizasyonunu yapmanız gerekiyor buda bazen can sıkıcı hale gelebiliyor fakat React sizlerden optimizasyonları beklemiyor.
- VUE:Vue’ nun diğer frameworklere göre render süreçleri daha hızlıdır ve öğrenim süresi oldukça kısadır. Virtual DOM Vue üzerinde de vardır.
- Hızlı bir biçimde SPA uygulama geliştirilebilir.
- Modüler bir yapıya sahiptir. Uygulamanızı parçalara bölebilirsiniz. Tekrar kullanılabilirlik konusunda oldukça başarılıdır.
- İhtiyacınız olan bütün paketler Angular içinde mevcut geliyor. Yani siz bir araba yapmak istiyorsanız Angular size arabanın kalıbını motorunu veriyor size sadece bunları birleştirmek kalıyor. Bu özellik Angular’ ı diğer SPA uygulamalardan ayıran en önemli özelliktir.
- Cross Platfromlar üzerinde çalışılabilir. Uygulamanızı web, desktop ve mobile olarak geliştirilebilir.
- Kullanıcı deneyimi olarak oldukça başarılıdır.
- Directive adı verilen yapı sayesinde HTML’e yeni etiketker veya attribute’lar eklemek mümkün.
- Aynı değişken üzerindeki herhangi bir değişiklik two-way data binding sayesinde bütün sayfa üzerindeki ilgili alanların değişmesini tetikler.
- Test Driven Development kavramına uygundur. Unit test yazmaya olanak sağlar.
kompleks bir uygulama geliştireceksiniz, Angular’ ın paketler ile birlikte gelmesi ve mvc yapısını kullanması dolayısı ile projenizi yönetmeniz Angular ile kolay olacaktır. Tabi yaptığınız uygulamayı hızlı bir biçimde web, mobil ve dekstop üzerinde çalışmanızı istiyorsanız bu konuda da sizi oldukça destekliyor. Proje yaparken biz yazılımcıların olmazsa olmazı stackoverflow üzerinde oldukça fazla yazı bulunmakta. Bu da aslında karşılaşacağınız sorunları hızlı çözmeniz konusunda size yardımcı olacaktır.