BACKEND Eğitimi:
Nest.js Eğitimi ve Sunucu taraflı uygulama geliştirme (230 saat):
Modül 1: Nest.js Girişi
1.1 Nest.js Nedir?
- js’in temel prensipleri
- TypeScript ve Express.js ile ilişkisi
1.2 Kurulum ve Proje Yapısı
- js projesi oluşturma
- Temel proje yapısı ve dosya organizasyonu
1.3 Temel Kavramlar
- Module, Controller, Service
- Dependency Injection
- Middleware kullanımı
1.4 RESTful API Temelleri
- Endpoint tanımlama
- HTTP metotları ve route parametreleri
- Request ve response Nesneleri
Modül 2: Veritabanı Entegrasyonu
2.1 TypeORM ve PostgreSQL
- TypeORM nedir?
- PostgreSQL ile veritabanı oluşturma ve Veritabanına bağlanılması
2.2 TypeORM ile Modelleme
- Entity ve Repository kullanımı
- Veritabanı tablolarının oluşturulması
2.3 CRUD Operasyonları
- Temel CRUD operasyonlarını gerçekleştirme
- TypeORM query builder kullanımı
2.4 Validation ve DTOs
- DTO (Data Transfer Object) kavramı
- Class-validator ile veri doğrulama
Modül 3: JWT Authentication ve Güvenlik
3.1 Passport.js ve JWT
- js kullanımı
- JWT ile kullanıcı doğrulama
3.2 Guard ve Middleware
- Auth guard ve middleware kullanımı
- Role-based yetkilendirme
3.3 OAuth ve Social Media Authentication
- OAuth protokolü
- Dış servislerle entegrasyon
3.4 Güvenlik Pratikleri
- SQL Injection, Cross-Site Scripting (XSS) önlemleri
- HTTPS kullanımı
Modül 4: GraphQL ve Nest.js
4.1 GraphQL Temelleri
- GraphQL kavramları
- GraphQL query ve mutationlar
4.2 Nest.js ve GraphQL Entegrasyonu
- js ile GraphQL servisi oluşturma
- Resolver ve schema kullanımı
4.3 Apollo Server ve Client
- Apollo Server kullanımı
- Frontend ile GraphQL entegrasyonu
Modül 5: Testing ve Hata Ayıklama
5.1 Birim Testleri
- Jest ve Supertest kullanımı
- Unit ve integration testler
5.2 Hata Ayıklama (Debugging)
- js uygulamalarını hata ayıklama
- Hata ayıklama stratejileri
Modül 6: Mikroservisler ve Nest.js
6.1 Mikro Servis Kavramları
- Mikro servis mimarisi nedir?
- Avantajları ve zorlukları
6.2 Nest.js ile Mikro Servis Geliştirme
- js ile mikro servis oluşturma
- İletişim ve veri paylaşımı
Modül 7: WebSocket ve Real-Time Uygulamalar
7.1 WebSocket ve Nest.js
- WebSocket protokolü
- WebSocket ile iletişim kurma
7.2 Real-Time Uygulama Geliştirme
- WebSocket ile anlık haberleşme
- Real-time uygulama senaryoları
Modül 8: Performans ve Optimizasyon
8.1 Performans Analizi
- Uygulama performansının değerlendirilmesi
- Optimizasyon stratejileri
8.2 Cache ve CDN
- Veri önbellekleme stratejileri
- CDN kullanımı
Modül 9: Docker ve Konteynerizasyon
9.1 Docker Temelleri
- Docker nedir?
- Docker konteynerleri ve avantajları
9.2 Nest.js ve Docker Entegrasyonu
- js uygulamasını Dockerize etme
- Docker-compose kullanımı
Modül 10: Proje Geliştirme ve Bitirme
10.1 Büyük Ölçekli Bir Proje Geliştirme
– Öğrenilen bilgilerin pratiğe dönüştürülmesi
– Projeyi planlama ve geliştirme
10.2 Bitirme ve Değerlendirme
– Projenin tamamlanması ve sunumu
– Öğrencilerle geri bildirim oturumları düzenleme
* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
React, Capacitor.js ile Platform Bağımsız (Web, Mobil) Uygulama Geliştirme
FRONTEND Eğitimi:
React, TypeScript ve Capacitor.js kullanarak platform bağımsız (Web, Mobil, Masaüstü) uygulama geliştirme eğitimi: (220 saat)
Modül 1: Temel Arayüz Teknolojileri
1.1 HTML ve CSS Temelleri
- Temel HTML etiketleri
- CSS seçiciler, özellikler ve değerler
1.2 Uyumlu (Responsive) Tasarım ve Mobil öncelikli(Mobile First) Yaklaşımı
- Ortam sorguları (Media queries) kullanımı
- Mobil öncelikli (Mobile First) tasarım prensipleri
1.3 Temel JavaScript ve ES6+ Özellikleri
- JavaScript temelleri
- ES6+ özellikleri
Modül 2: React.js ve TypeScript
2.1 React.js Temelleri
- React bileşenleri ve JSX
- React State ve Props kullanımı
2.2 React Router ve Navigasyon
- React Router kullanımı
- Sayfa geçişleri ve navigasyon stratejileri
2.3 React State Yönetimi
- Context API ve Redux kullanımı
- Redux Toolkit, React-Redux Hooks ve Redux Saga
2.4 TypeScript ile React Entegrasyonu
- TypeScript temelleri
- TypeScript ile React uygulaması geliştirme
Modül 3: Capacitor.js ve Platform Bağımsız Uygulama Geliştirme
3.1 Capacitor.js Nedir?
- js’in temel prensipleri
3.2 Mobil Uygulama Geliştirme
- js ile mobil uygulama projesi oluşturma
- js eklentisinin kullanımı
3.3 Web Uygulama Geliştirme
- js ile web uygulama projesi oluşturma
- Platform bağımsız kodlama
3.4 Electron.js Temelleri
- js nedir?
- js electron.js eklentisi kullanımı
3.5 Masaüstü Uygulama Geliştirme
- js ve Electron.js ile masaüstü uygulama geliştirme
Modül 4: Tailwind CSS ve Responsive Tasarım
4.1 Tailwind CSS Temelleri
- Tailwind CSS’in avantajları
- Sınıf tabanlı CSS yaklaşımı
4.2 Responsive Tasarım
- Tailwind CSS ile uyumlu tasarım stratejileri
- Ekran boyutlarına göre düzen yönetimi
Modül 5: Hata Ayıklama (Debugging) ve Test Süreçleri
5.1 Hata Ayıklama Stratejileri
- Tarayıcı geliştirici araçları kullanımı
- Mobil ve masaüstü uygulamalarda hata ayıklama
5.2 Test Süreçleri
- Birim testleri (Unit test) ve entegrasyon testleri (integration test)
- React Testing Library ve Jest kullanımı
Modül 6: Uygulama Dağıtımı (Deployment) ve CI/CD
6.1 Uygulama Dağıtım Stratejileri
- Web, mobil ve masaüstü uygulamalarını yayınlama
- Apple App Store, Google Play markete uygulama ekleme
6.2 CI/CD ve Otomatik Dağıtım
- Continuous Integration (CI) ve Continuous Deployment (CD)
- GitHub Actions veya başka CI/CD araçları ile entegrasyon
Modül 7: Mobil ve Masaüstü Uygulama Optimizasyonu
7.1 Performans Analizi
- Uygulama performansının değerlendirilmesi
- Optimizasyon stratejileri
7.2 Offline Çalışma ve Cache Stratejileri
- Service Worker kullanımı
- Veri önbellekleme ve offline çalışma
Modül 8: Proje Geliştirme ve Bitirme
8.1 Büyük Ölçekli Bir Proje Geliştirme
– Öğrenilen bilgilerin pratiğe dönüştürülmesi
– Projeyi planlama ve geliştirme
8.2 Bitirme ve Değerlendirme
– Projenin tamamlanması ve sunumu
* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
Typescript Programlama Dili
Typescript Programlama Dili (160 saat)
Modül 1: TypeScript Temelleri
1.1 Giriş
- TypeScript’in Önemi ve Kullanım Alanları
- JavaScript ve TypeScript arasındaki temel farklıklar
- TypeScript’in avantajları ve güçlü yanları
1.2 Kurulum ve Ayarlar
- js ve npm kurulumu
- TypeScript kurulumu
- TypeScript Proje yapılandırması ve “tsconfig.json” dosyası
1.3 İlk TypeScript Uygulaması
- Bir TypeScript dosyası oluşturma
- Temel TypeScript sentaksı
- TypeScript dosyasını derleme ve çalıştırma
1.4 TypeScript Entegrasyonu
- TypeScript ile yaygın IDE’lerin (VS Code, WebStorm, …) kullanımı
- TypeScript entegrasyonu için geliştirme araçları
Modül 2: Veri Tipleri ve Değişkenler
2.1 Temel Veri Türleri
- string, number, boolean, array, object veri türleri
- Tür çıkarımları ve tür bilgilendirmeleri
2.2 Değişkenler ve Sabitler
- let, const, var anahtar sözcükleri ile değişken tanımlama
- Blok faaliyet alanı ve fonksiyon faaliyet alanı
2.3 Türlere Alternatif İsimler Verilmesi ve Birlik Türleri
- Tür takma adları (Type aliases)
- Birlik türleri ve Kesişim türleri
2.4 Türlere İlişkin İleri Düzey Bilgiler
- Sayımlama Türleri ve Sabitleri ve literal türler
- Null Türü ve Undefined Türü
- Tür söylemleri (Type assertions)
Modül 3: Fonksiyonlar
3.1 Fonksiyon Tanımlama ve Çağırma
- Fonksiyonların ve Metotların Parametre Değişkenleri ve geri dönüş değerleri
- İsimli parametreler ve default argüman kullanımı
3.2 Rest Parametreler ve Spread Operatorü
- Rest parametrelerin ve spread operatorünün kullanımı
- İleri seviye fonksiyon kullanımı
3.3 Yüksek Düzeyli Fonksiyonları
- Callback fonksiyonlar
- Promise ve Async/Await kullanımı
3.4 Jenerik Fonksiyonlar ve Sınıflar
- Jenerik fonksiyonlar
- Jenerik sınıflar
Modül 4: Sınıflar ve Nesne Yönelimli Programlama (OOP)
4.1 Sınıflar ve Nesne Yaratma
- Sınıfların Tanımlanması ve Sınıflar Türünden Nesnelerin Yaratılması
- Yapıcı metotlar ve this kullanımı
4.2 Türetme İşlemleri ve Arayüzler
- Kalıtım (inheritance)
- Arayüzler (interfaces) ve implementasyon
4.3 Soyut Sınıflar ve Arayüzler
- Soyut sınıfların kullanımı
- İnterface’lerin ayrıntı
4.4 Sınıfların Statik Metotları
- Sınıfların Statik Metotları ve Statik Elemanları
- Örnek uygulamalar
Modül 5: Modüllerle Çalışma
5.1 Modüllerin Tanımlaması ve Kullanma
- Modüllerin avantajları
- Modüllerin tanımlaması ve kullanması
5.2 Modüllerde Import ve Export işlemleri
- Modüller arası veri alışverişi
- Default ve ismlendirilmiş exports
5.3 Modül Yapılandırma ve Farklı Modül Sistemleri
- CommonJS ve ES6 modül sistemleri
- Uygulama senaryoları
Modül 6: Genel Tavsiyeler ve İleri Seviye Konular
6.1 TypeScript Projelerinde Genel Tavsiyeler
- Kod düzeni ve yazım kuralları
- Kaynak Kodun Dokümantasyonu ve Kod İçi açıklamalar
6.2 İleri Seviye Konular
- Dekoratörler
- Tür Korumaları ve Koşullu Türler
- Yardımcı türler (Utility types) ve Eşleşmiş türler (mapped types)
Modül 7: TypeScript ve Web Geliştirme Entegrasyonu
7.1 Webpack ve TypeScript
- TypeScript projelerini yapılandırma
- Webpack entegrasyonu
7.2 TypeScript ve React, Angular, Vue.js Entegrasyonu
- TypeScript ile sık kullanılan framework’lerle çalışma
- Uygulama senaryoları
Modül 8: Hata Ayıklama ve Performans İyileştirmeleri
8.1 Hata Ayıklama Stratejileri
- TypeScript hata ayıklama araçları
- Hata ayıklama stratejileri ve ipuçları
8.2 Performans İyileştirmeleri
- TypeScript projelerinde performans analizi
- Optimizasyon stratejileri
Modül 9: TypeScript Ekosistemi ve Araçlar
9.1 TypeScript Ekosistemi
- Çok Kullanılan kütüphaneler ve araçlar
- TypeScript Kullanan Topluluklar ve TypeScrşpt İçin Kaynaklar
9.2 TypeScript İçin Editörler ve IDE’ler
- TypeScript ile uyumlu IDE’lerin kullanımı
- VS Code, WebStorm gibi yaygın kullanılan editörler
Modül 10: Proje Geliştirme ve Bitirme
- Küçük Proje Geliştirme
– Öğrenilen bilgilerin uygulamaya dönüştürülmesi
– Gerçek dünya senaryolarına dayalı küçük bir proje
* Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
Javascript ve Node.js ile Uygulama Geliştirme
C# ve ASP.NET Core MVC
Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.
C# ve ASP.NET Core MVC
Açıklama: Bu kurs içerik bakımından iki ana kısma ayrılmıştır; C# programlama dili ve ASP.NET MVC Core framework’ü.
İlk kısımda C# dilinin sentaks kuralları, nesne yönelimli programlama ve .NET kütüphanesinin önemli sınıfları ele alınmaktadır.
İkinci kısım ise ASP.NET MVC Core isimli framework ile modern ve platform bağımsız web uygulamaları/servislerinin geliştirilmesine odaklıdır. Bu kısımda ASP.NET Core haricinde (SOLID, UML, Pattern, Idiom, AntiPattern, …) gibi pek çok önemli konu ve teknolojiye de (Entity Framework, SQL Server, RabbitMQ, Git, …) değinilmekte yanı sıra pek çok örnek uygulama geliştirilmektedir.
Kısım 1 (.NET ve C#’a Giriş)
- .NET ortamına ilişkin temel kavramlar (JIT, MSIL, CLR, CTS, CLS…)
- Platform bağımsız çalışma olgusu
- Çevirici programlar, derleyiciler yorumlayıcılar
- .NET ortamının aşağı seviyede incelenmesi ve Java ile karşılaştırılması
- Atom kavramı
- Console sınıfının etkin kullanımı
.NET Tür Sistemi
- Değişkenler, Sabitler
- Faaliyet alanı ve Ömür kavramı
- Type Inference
Metotlar/Fonksiyonlar
- Parametre ve Argüman kavramları
- ref/out parametreler
- Default argüman alan metotlar
- Variadic (değişken sayıda parametre alan) metotlar
- İsimlendirilmiş parametreler
- Overloading
Operatörler
Akış Kontrol deyimleri
- if ve switch deyimleri
- Koşul Operatörü
- while ve do while döngü deyimleri
- for ve foreach döngü deyimleri
- break ve continue deyimleri
Tür dönüştürmeleri
Nesne Yönelimli Programlama (OOP) Paradigması
- Sınıf ve nesne kavramları
- Referans türleri ve değer türleri
- Referans (adres) kavramı
- new operatörü
- Sınıfın static olmayan veri elemanlarına erişim ve nokta operatörü
- Sınıfın static olmayan veri elemanlarının varsayılan değerleri
- Referans parametreli metotlar
- Referans geri dönüş değerli metotlar
- Sınıfın static veri elemanları
- Sınıfın non-static ve static metotları
- Sınıfın non-static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu
- Sınıfın static metotları içerisinde non-static ve static elemanlara doğrudan erişim durumu
Sınıfların başlangıç metotları (constructors)
- Nesne oluşturulması adımları
- Sınıfın varsayılan (default) başlangıç metodu
- Başlangıç metotlarının overload edilmesi
- Birincil başlangıç metotları (primary constructor’s)
İsim alanları (Namespace)
- Paketleme ve granülasyon kavramları
- Farklı isim alanlarındaki sınıflara erişim
- İç içe isim alanı bildirimleri
- using anahtar sözcüğü
İsim arama
- Niteliksiz (unqualified) isim arama
- Nitelikli (qualified) isim arama
Diziler (Arrays) ve uygulamalar
- Dizi referansları
- Diziye ilişkin nesnelerin bellekteki durumu
- Dizi elemanlarına erişim
- Dizilere ilk değer verilmesi
- Dizilerin metotlara geçirilmesi: dizi referansı parametreli metotlar
- Dizi referansı döndüren metotlar
- Sıralama algoritmaları: (bubble sort, selection sort, quick sort)
- char türden diziler
- char türden diziler ve String sınıfı
- Referans dizileri
- Referans dizilerine ilkdeğer verilmesi
- String türden diziler
- Dizi dizileri
- Dizi dizilerinin çok boyutlu dizi gibi kullanılması
- Dizi dizilerine ilk değer verilmesi
Sınıflarda temel erişim kuralları
- public erişimcisi
- private erişimcisi
- protected erişimcisi
- internal erişimcisi
- file erişimcisi
- Başlangıç metodunun private, protected ya da internal olması durumu
- Singleton ve Factory tasarım kalıpları
- Encapsulation kavramı, Property ve AutoProperty’ler
- Object Initializer kullanımı
Enum’lar
- enum sabitleri
- enum sınıfların sabit dışındaki elemanları
- enum sınıfların başlangıç metotları (constructor)
- enum’ların karşılaştırılması
- enum’ların kullanımı
Sınıflar arası ilişkiler
- Association, Composition, Aggregation, Inheritance, Dependency
- UML modelleme diline giriş
Türetme (inheritance)
- Base class (taban sınıf) ve derived class (türemiş sınıf) kavramları
- Başlangıç metodu içerisinde taban sınıfın başlangıç metodunun çağrılması
- Başlangıç metodu içerisinde taban sınıfa ait istenilen bir başlangıç metodunun çağrılması
- Başlangıç metodu içerisinde başka bir başlangıç metodunun çağrılması
- protected bölümün anlamı
- Object sınıfı
Taban sınıf ve türemiş sınıf arasındaki dönüşümler
- Yukarıya doğru dönüşüm (upcasting)
- Aşağıya doğru dönüşüm (down-casting)
- is opetörü
- Otomatik kutulama (auto-boxing) ve otomatik kutuyu açma (auto-unboxing)
- sealed sınıflar
- this referansının anlamı ve kullanımı
- null referans kavramı
Çöp Toplayıcı (garbage collector)
- Çöp toplayıcı’nın çalışma biçimi
- Referans sayma, GC Sınıfı
- IDisposable ve using anahtar sözcüğü ile Dispose kalıbının idiomatik uygulaması
Önemli Veri Yapılarına İlişkin Sınıflar
- ArrayList, List
- HashTable, Dictionary, SortedList
- Tupple
Çok biçimlilik (Polymorphism)
- Sanal metotlar ve Overriding
- base referansı
- Override edilen metot içerisinde taban sınıfın aynı metodunun çağrılması (augmentation)
- Override edilen metodun erişim belirleyicisinin erişim anlamında yükseltilmesi
- sealed metotlar
Soyut sınıflar ve metotlar (abstract classes and methods)
- Soyut sınıf ve metotların anlamı
- Soyut metotların override edilmesi
- Soyut metotların override edilmemesi durumu
- Soyut sınıfların taban sınıf referansı olarak kullanılması
- Soyut sınıfların başlangıç metotları
Exception Handling
- Exception kavramı kullanımı
- throw anahtar sözcüğü ve bir exception nesnesinin fırlatılması
- Try/Catch/Finally mekanizması
- Yeniden fırlatma (rethrow)
- İçiçe try bloklarının bulunması durumu
- Özgün Exception sınıfları
- checked ve unchecked exception sınıfları
- Önemli exception sınıfları
Arayüzler (Interface’s)
- Bir sınıfın desteklediği arayüzler ve metotların override edilmesi
- Arayüzler ile abstract sınıflar arasındaki farklar
- Arayüzler arası tür dönüştürme ayrıntıları
- Sıkça kullanılan bazı arayüzler
Generic’ler ile Türden Bağımsız İşlemler
- Generic sınıflar ve metotlar
- Generic sınıflarda türetme işlemleri
- Generic sınıflarda new operatörü ile <> (diamond syntax) kullanımı
- Generic arayüzler
- Kısıtlamalar (constraint’s)
- Generic sınıflarda alt sınır ve üst sınır belirlenmesi (invariant, covariant ve contra-variant)
Extension metotlar
Delegate (Temsilci) ve Event’ler
Lambda İfadeleri
Thread ve Process Sınıfları
Reflection ve Metadata kavramları
Attribute sınıfları
Bit seviyesinde işlemler ve ilişkili operatörler
Dinamik kütüphanelerin (DLL) oluşturulması ve kullanılması
Dosya işlemleri
ADO.NET ile VeriTabanı İşlemleri
Asenkron Çalışma ve TPL (Task Parallel Library)
Kısım 2 (ASP.NET MVC Core ve C# ile Web Uygulamaları Geliştirmek)
Middleware kavramı
Request ve Response Manipülasyonları
Dependency Inversion, Inversion Of Control
Dependency Injection kavramı
Katmanlı Mimarı Kullanarak Uygulama Geliştirme
Repository, UnitOfWork kalıpları
Katmanlı mimaride exception handling
Razor sentaksı
MVC (Model ViewController) kalıbı
Razor Engine ve Razor sentaksı
Dinamik tür sistemi ve Expando Nesneler
Transfer Data (ViewBag, ViewData, TempData)
Tag Helper’lar
Validasyon
Blazor Framework
Entity Framework Core ile veritabanı işlemleri
Container ve Docker Kavramları
Container ortamında ASP.NET Core uygulamalarının çalıştırılması
ASPNET Core Güvenlik
Authentication, Authorization, OAuth
Javascript programlama dili
WebAPI ile Rest Servislerin Yazılması
JWT (Json Web Token)
CQRS
Mikroservis Mimarisi
LibMan ve Npm Paket Yönetim Sistemleri
Cookie (Çerezler)
Session Mekanizması
Onion Architecture
RabbitMQ, MSMQ gibi mesaj kuyruklama altyapılarının kullanımı
Ve diğerleri..
Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.
* Kurs ücreti duyuru sayfasında belirtilmektedir.
Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
Android Programlama (Kotlin ve Java ile)
Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.
Açıklama : Bu kurs Java ve Kotlin Programlama Dillerini kullanarak Android işletim sistemi için uygulama geliştirme becerisini kazandırmayı hedeflemektedir. Uygulamalar, Java ve Kotlin programlama dillerini karma biçimde kullanarak geliştirilecektir. Kurs içerisinde pek çok konu belli bir derinlikte ele alınmaktadır. Bu kurs aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.
Kurs konularından bazıları aşağıdadır:
Kotlin Programlama Dili (Java, C# ve C++ programcıları için)
+ Temel türler ve değişken tanımlama
+ var ve val değişkenker
+ string template
+ Sabitler
+ Fonksiyon bildirimi çağrılması
+ Default ve isimli argümanlar
+ Tek ifadeli fonksiyonlar
+ Global fonksiyomnlar
+ Yerel fonksiyonlar
+ Operatörler ve karşılık gelen fonksiyonlar (operator functions)
+ Kontrol deyimleri: if ifadesel deyimi, while döngü deyimi, do-while döngü deyimi, for döngü deyimi, break ve continue deyimleri, when ifadesel deyimi
+ Tür dönüşümleri
+ Sınıflar
+ Başlangıç metotları (primary ve secondary constructors)
+ init bloğu
+ Sınıfın property elemanları
+ Sınıflarkn operatör fonksiyonları
+ Örnek sınıfların kullanımı: Random ve String sınıfları
+ Temel türlerin çeşitli metotları
+ Paketler
+ import bildirimleri
+ Diziler
+ Erişim belirleyiiciler:
+ Global düzeyde erişim belirleyiciler: public, internal, private
+ Sınıf elemanlarının erişim belirleyicileri: public, internal, protected, private
+ enum sınıfları
+ Sınıflararası ilişkiler: composition, aggregatiıon, association, inheritance
+ Türetme (inheritance)
+ upcasting ve downcasting
+ Any sınıfı
+ Çok biçimlilik (polymprhisim)
+ Sanal metotlar ve override işlemi
+ Abstract sınıflar, abstract metotlar ve abstract property elemanları
+ data sınıflar (data classses)
+ component metotları ve
+ null atanabilir türler (nullable types)
+ Akıllı dönüşümler (smart casting)
+ Özel operatörler: ?., !!, as?, is, !is
+ Exception işlemleri
+ Eklenti fonksiyonlar (extension functions)
+ infix fonksiyonlar
+ Arayüzler (interfaces)
+ Generic sınıflar ve metotlar
+ Yararlı generic sınıflar
+ nested classes
+ inner classes
+ Anonim nesneler
+ object bildirimi ve companion objects
+ type aliases
+ Fonksiyon türleri
+ Lambda fonksiyonlar
+ Sınıfların üye fonksiyonların fonksiyon türlerine verilmesi
+ Fonksiyon parametreli foknsiyonlar
+ let, also, run, with ve apply fonksiyonları
+ Collection sınıflar
Android programlamaya giriş
+ Android işletim sistemi ve sürümler
+ Android işletim sistemine ilişkin genel bilgiler
+ Android programlamada kullanılan temel araçlar: Android SDK, Android NDK, Android Studio
Android Studio IDE programı ve Android SDK’nın kurulumu ve kullanımı
+ Android SDK kurulumu
+ Android Studio kurulumu
+ Android studio proje seçenekleri
+ Android projelerininbileşenleri
Emülatör kurulumu ve kullanımı
+ Android Virtual Device (AVD)
+ Android emülatör konfigürasyonu
+ Android uygulamasının emülatör ile çalıştırılması
Context kavramı
+ Context ve ContextWrapper sınıfları
+ Application Context
+ Base context
+ Diğer context çeşitleri
Activity ve Intent kavramları
+ Activity kavramı ve Activity sınıfı
+ Activity yaşam döngüsü (life cycle) ve yaşam döngüsüne ilişkin metotlar
+ Intent sınıfı
+ Bir activity’nin başlatılması (launch)
+ Bundle sınıf
+ Activity’ler arası haberleşme
+ Başlatan activity’den başlatılan activity’ye veri aktarılması
+ Başlatılan activity’den başlatan activity’ye veri aktarılması (onActivityResult metodunun override edilmesi)
+ Örnek uygulamalar
Temel Kullanıcı arayüzü bileşenleri (Views, Menu’ler, Layoutlar)
+ View ve ViewGroup sınıfları
+ Layout sınıfları
+ Menu işlemleri
+ Temel Adapter sınıfları
+ Temel AdapterView’lar (ListBox, Spinner vb.)
+ Custom adapter view’lar
+ Örnek Uygulamalar
Reaktif programlama ve RxJava
+ Reaktive programlama
+ RxJava hakkında temel bilgiler
+ Android üzerinde RxJava (RxAndroid)
+ Kotlin ile RxJava kullanımı
+ RxBinding kullanımı
+ RxJava’nın detaylı incelenmesi
+ Örnek uygulamalar
Kütüphane kullanımı: aar (android archive) ve jar (java archive) dosyaları
+ jar ve aar dosyaları
+ jar ve aar dosyalarının proje içerisinde kullanımı
+ Örnek Uygulamalar
Gradle arascı
+ Gradle kullanımı
+ Gradle direktiflerinin anlamları
+ gradle dosyalarının anlamı
+ dependencies.gradle dosyası
+ Versiyonlama
+ Proguard kullanımı
Android kütüphane oluşturma
+ Module kavramı
+ Android modüller
+ jar modül oluşturma
+ aar modül oluşturma
+ Kütüphane dosyalarının kütüphane dosyalarını kullanması
+ Örnek uygulamalar
Uygulamada kullanılan kalıplar (patterns)
+ Service Locator ve Singleton kalıpları
+ Dependency Injection kavramı ve kullanılan kütüphaneler
+ Dagger kütüphanesi
+ Hilt kütüphanesi
+ Örnek uygulamalar
Katmanlı Mimari uygulamaları
+ Katmanlı mimarı kullanarak proje geliştirme avantajları
+ Repository, service ve application katmanları
+ Katmanlı mimari kullanarak proje geliştirmede exception’ların yönetilmesi
+ Örnek uygulamalar
Dosya sistemi ve dosya işlemleri
+ Android dosya sistemi
+ Internal ve external memory
+ Dosyanın bütünü üzerinde işlem yapan sınıflar
+ Dosyanın verileri üzerinde işlem yapan sınıflar
+ Internal memory üzerinde dosya işlemleri
+ files dizininde dosyalar
+ cache dizininde dosyalar
+ shared preferences dosyalar
+ External memeory üzerinde dosya işlemleri
+ FileProvider ile uygulamalar arası dosya paylaşımı
+ Örnek uygulamalar
Yerel veritabanı işlemleri:
+ Temel veritabanı kavramları
+ CRUD işlemleri
+ İlişkisel veritabanı yönetim sistemleri (Relational Database Management Systems)
+ NoSql veritabanı yönetim sistemleri
+ SQLite veritabanı yönetim sistemi
+ SQLite API ile veritabanı işlemleri
+ RoomDatabase kullanarak veritabanı işlemleri
+ ObjectBox kullanarak veritabanı işlemleri
+ Örnek Uygulamalar
Content Provider’lar ile veri alışverişi
+ Content provider kullanımı
Asenkron işlemler ve Çoklu thread (Multithreading) uygulamarı
+ Process kavramı
+ Asenkron programlama hakkında temel bilgiler
+ Çizelgeleme algoritmaları (scheduling algorithms)
+ Thread kavramı
+ Thread sınıfı ve Runnable arayüzü
+ Executor’lar ve thread havuzları
+ Looper sınıfı
+ Handler sınıfı
+ AsyncTask sınıfı
+ Kotline coroutines
+ Timer sınıfı
+ CountDownTimer sınıfı ve kullanımı
+ RxJava ile asenkron işlemler
+ Schedulers sınıfı (Schedulers factory class)
+ computation metodu
+ io metodu
+ newThread metodu
+ single
+ trampoline
+ AndroidSchedulars sınıfı
+ Thread’lerarası senksronizasyon
+ Örnek uygulamalar
Android Service uygulamaları (local and remote services)
+ Android service kavramı
+ Service sınıfı
+ IntentService sınıfı
+ Yerel servisler (local services)
+ Android sürümleri arasındaki service farklılıkları ve benzerlikleri
+ Uzak servisler (Remote Servileri)
+ AIDL servisler
+ Mesaj kuyrukları
+ Örnek uygulamalar
Broadcast işlemleri
+ Broadcast kavramı
+ Android broadcast kullanımı
+ Android sürümleri arasında broadcast fakları
+ PÖrnek uygulamalar
Kaynak (resource) kullanımı
+ Kaynak kavramı
+ string kaynakları
+ string kaynakları ile uygulamada çoklu dil desteği
+ drawable kaynaklar
+ layout kaynaklar
+ Örnek uygulamalar
TCP/IP Client-Server programlama
+ IP protokolü ve temel kavramlar
+ TCP ve UDP protokolleri
+ Socket kavramı
+ Network byte order (little mandian, big endian kavramları)
+ Client, server programlama modeli
+ TCP protokolü ile uygulama geliştirme
+ Server programın organizasyonu
+ Client programnın organizasyonu
+ Binary haberleşme
+ Text haberleşme
+ Farklı platformlarda geliştirilmiş uygulamalar ile haberleşen uygulmalar
+ UDP protokolü ve uygulama geliştirmne
+ Datagram kavramı
+ UDP programlarının organizasyonu
+ UDP kullanılan örnekler
+ Örnek uygulamalar
Komnu işlemleri
+ GPS kullanarak konum bilgisinin elde edilmesi
+ GSM kullanarak konum bilgisinin elde edilmesi
+ WiFi kullanarak konum bilgisinin elde edilmesi
+ Örnek uygulamalar
Web Servis kullanımı
+ Web servis kavramı
+ RESTful servisler
+ JSON ve XML veri değiştirme (data exchange) formatları
+ Android web servis erişimi (consume)
+ org.json paketindeki sınıflar
+ Spring RestTemplate sınıfı
+ Retrofit kullanımı
+ RxJava ve Retrofit birlikte kullanımı
+ XML web servislerine erişim
IOT uygulamaları
+ IoT kavramı
+ RaspberryPi ile Android haberleşme uygulamaları
+ Örnek haberleşme uygulamaları
Temel çizim işlemleri
+ View üzeribde çizim işlemleri
+ Android dokunma (touch) işlemleri
+ Canvas sınıfı
+ Temel OpenGL ES
+ Örnek uygulamalar
Bazı özel işlemler
+ Android uygulamalarının icon’larının gizlenmesi
+ Sistemin yeniden başlatılmasında (boot) devreye giren uygulamalar
+ Sistem üzerinde çalışan uygulamaların (process) elde edilmesi
+ Olası bir hata (exception) durumunda uygulamanın yeniden başlatılması
+ Ortak intent’ler
+ Örnek uygulamalar
Ön Koşul : Java veya C# Programlama Dillerinden birini bilmek veya derneğimizin açtığı “Java ile Nesne Yönelimli Programlama veya C# ile Nesne Yönelimli Programlama” kursunu başarıyla bitirmiş olmak.
*Kurs ücreti duyuru sayfasında belirtilmektedir.
Kursumuza ön kayıt yaptırmak için bu bağlantıyı kullanabilirsiniz.
Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
React Native ile Platform Bağımsız Mobil Programlama
React Native ile Platform Bağımsız Mobil Programlama
Açıklama : Bu kurs React Native kullanılarak cross-platform mobil uygulama geliştirme becerisini kazandırmayı hedeflemektedir. React Javascript programalama dilini kullanan bir ortamdır ve cross-platform uygulama geliştirmede çok kullanılmaktadır. Kurs içerisinde pek çok konu belli bir derinlikte ele alınmaktadır. Bu kurs aynı zamanda bir uygulama kursu olduğundan her konu ele alınırken uygulamalı çalışmalar yapılacaktır.
Javascript programlama dili
• Bu bölümde daha önce herhangi bir programlama dilinde çalışanlara yönelik Javascript programlama dili anlatılacaktır:
• Temel türler
• Tür dönüşümleri
• Fonksiyonlar
• Kontrol deyimleri (if, while, do-while, for, break, continue, switch, …)
• Nesneler
• Fonksiyon türleri
• Diziler
• Lambda ifadeleri
• Javascript ile fonksiyonel programlama
• Prototype kavramı
• Sınıflar
React Native Ortamınına İlişkin Temel Kavramlar
• React Native temel özellikleri
• React Native avantajları
• React Native sınırları
• React Native ortamının kurulumu
• Android Studio kurulumu
• Android için emulator yapılandırması
• Yaşam ömrü (lifecycle) fonksiyonları
Container Component
• Container component kavramı
• Container component çalışma sistematiği
• Örnekler
Presentational Component
• Presentational component kavramı
• Presentational component çalışma sistematiği
• Örnekler
State ve Props kavramları
• State kavramı ve kullanımı
• Mutable state kavramı
• Props
Styling
• Styling kavramı
• Styling’in uygulama içerisinde kullanımı
• View bileşenlerine styling uygulanması
Temel Bileşenler
• View
• WebView
• Modal
• ActivityIndicator
• Picker
• Status Bar
• Switch
• Text
• Alert
• StyleSheet
GUI elemanları
• Flexbox
• Layout
• ListView
• Text Input
• Scrollview
• Images
• Buttons (Touchables)
Navigation
• React native navigation ve web navigation karşılaştırılması
• Navigation based application
• Navigation verilerinin saklanması
Platform bağımsız API kullanını
• Bildirim (notification) işlemleri için Alert API kullanımı
• Uygulamanın durumu için AppState API kullanımım
• Veri saklama işlemleri için AsyncStorage kullanımı
• Clipboard kullanımı için Clipboard API
• Kullanıcı ekran işlemleri için Dimensions API kullanımı
• Lokasyon için Geolocation API kullanımı
• Klavye işlemleri için Keyboard API kullanımı
• Kullanıcı bağlantılı/bağlantısız bilgieri için NetInfo kullanımı
• Touch ve gesture işlemleri için PanResponder kullanımı
Network İşlemleri
• Fetch kullanını
• WebSockt kullanımı
• Diğer kütüphenelerin kullanımı
Android sistemlerine yönelik işlemler
• Android menü işlemleri, DrawerLayout kullanımı
• Android Toolbar
• ViewPagerAndroid kullanımı
• DatePickerAndroid API
• TimerPickerAndroid API
• ToastAndroid API
IOS sistemlerine yönelik işlemler
• DatePickerIOS
• PickerIOS
• ProgressViewIOS
• SegmentedControlIOS
• TabBarIOS
• ActionSheetIOS
* Kurs ücreti duyuru sayfasında belirtilmektedir.
Bu kurs C ve Sistem Programcıları Derneği ve Sistem Bilgisayar işbirliği ile düzenlenmektedir.
İleri Android Programlama ve Uygulama Geliştirme
Açıklama : Bu kurs Android işletim sistemi üzerinde temel düzeyde uygulama geliştirmiş olan kişilere yönelik ileri düzey bir programlama kursudur. Android işletim sistemi üzerinde aşağı seviyeli geliştirme ortamı (NDK) da ayrıca ele alınacaktır. NDK uygulamaları için C/C++ bilinmesi gerekmektedir. Ancak bilmeyen kişiler de kavramsal olarak bilgi kazancı sağlayabilirler. Bununla birlikte genel ileri düzey (örneğin TCP/IP Client-Server programlama) uygulamaların da Android işletim sisteminde geliştirilmesi de kurs kapsamındadır. Tüm konular uygulamalı olarak ele alınacaktır.
Kurs konularından bazıları aşağıdadır:
• Android programlarının test edilmesi.
• Android işletim sisteminin aşağı seviyeli incelenmesi
• Android sistem programlama
• İleri çizim işlemleri (2B/3B işlemler, OpenGL ES kullanımı)
• Android ile sanal ve genişletilmiş gerçeklik (Virtual/Augmented reality) uygulamarı geliştirme
• Android için geliştirilen yazılımların güvenliği.
• Android işletim sistemi ile çeşitli sensörlerin kullanımı
• Çokluortam (multimedia) programlama
• NDK kullanarak uygulama geliştirme
• Android için geliştirilen yazılımların performanslarının artırılmasına yönelik işlemler
• Android üzerinde ileri düzey haberleşme uygulamaları geliştirme (TCP/IP programlama, Web Servisleri, Whatsapp benzeri programların yazılması)
• Temel düzeyde Android TV ve giyilebilir (wearable) teknolojiler için uygulama geliştirme
• Ve diğerleri…
Ön Koşul : Android işletim sistemi üzerinde temel düzeyde uygulama geliştirmiş olmak veya derneğimizin açmış olduğu “Android Programlama” kursunu başarıyla bitirmiş olmak
* Ücreti sorunuz.
Swift Programlama Dili İle IOS İşletim Sistemleri İçin Uygulama Geliştirme
Bu kurs Swift Programlama Dili ile IOS uygulamaları geliştirmek isteyen programcılara yöneliktir. Kursun ilk bölümü Swift Programlama Dilini öğretmeyi, ikinci bölümü ise uygulama geliştirme beceresini kazandırmayı amaçlamaktadır.
Önkoşul: Katılımcıların aşağıdaki her iki koşulu da sağlıyor olmaları gerekmektedir:
C,C++, Java ya da C# gibi nesne yönelimli bir programlama dilinde uygulamalı çalışma yapmış olmak ya da Derneğimizin açmış olduğu bu kurslardan birini başarıyla bitirmiş olmak.
* Ücreti sorunuz.