← Back to list

Teknasyon’da Staj Yapmak: Öğrendiklerim ve Kazandığım Deneyimler

Teknasyon’da geçirdiğim 30 günlük staj, benim için hem öğretici hem de ilham verici bir deneyim oldu. Staj boyunca, API dökümantasyonu…

Fatihbcg · 2024-11-24 18:20 · 60 claps · 3.6 min read
#internship-experience #teknasyon #android-app-development #ecommerce-app-development #jetpack-compose
Open on Medium ↗

Teknasyon’da Staj Yapmak: Öğrendiklerim ve Kazandığım Deneyimler

Teknasyon’da geçirdiğim 30 günlük staj, benim için hem öğretici hem de ilham verici bir deneyim oldu. Staj boyunca, API dökümantasyonu kullanarak bir ticaret uygulaması geliştirdim. Bu süreçte Jetpack Compose, MVI design pattern ve Clean Architecture gibi teknolojilere odaklanarak yeni şeyler öğrenmenin heyecanını yaşadım.

Mentorum Celal Baydar, sadece teknik anlamda değil, profesyonel iletişim ve ekip çalışması gibi konularda da bana yol gösterdi. Her gün sabah ve akşam yapılan kısa toplantılarla, o günün görevleri üzerinde konuştuk ve ilerlememi değerlendirerek her geçen gün daha verimli bir öğrenme süreci kat etmeye odaklandık. Ayrıca, toplantılar sayesinde ekip içi iletişimin ne kadar elzem olduğunu öğrendim ve bu, bana çok şey kattı. Ekibin bir parçası olmak, ve süreç boyunca ilerlerken yaşanan şeyleri bu şekilde deneyim etmek profesyonel hayatın tamamen bireysel çalışma değil daha çok iletişim ve ekip çalışması olduğunu göstermiş oldu.

1. Hafta: Jetpack Compose’a İlk Adımlar ve Tasarım Süreci

Staja Splash Screen tasarımıyla başladım. Jetpack Compose’a daha önce aşina olmadığım için dökümantasyon okuyarak başladım ve ekran tasarımlarını oluşturdum. İlk haftanın sonunda, Login ve Register ekranlarını tamamladım. Bu süreçte, sürekli tekrar eden kod bloklarını fark ettim ve bu kodları uikit adında ayrı bir pakete taşıyarak projeyi daha düzenli hale getirdim. **Navigation sistemiyle ekranlar arası geçişi sağladım ve [MVI design pattern](https://engineering.teknasyon.com/how-to-implement-mvi-with-delegates-on-android-f2aa1a842b73)**’e aşina olmaya başladım.

Ayrıca, kullanıcı girişlerinde hatalı veri girişlerini engellemek için **input validation** sistemini uygulamama ekledim. E-posta formatı yanlış olduğunda uyarı mesajı gösteren bir kod bloğu yazdım. Ayrıca, telefon numarası girerken, görsel olarak telefon numarası formatını eklemek için özel bir düzenleme yaptım (+90 000–000–0000). Bu gibi geliştirmelerle hem Android geliştirmeye daha çok alıştım hem de kullanıcının tecrübesini daha fazla ön planda tutmam gerektiğini anlamış oldum.

Splash-Register-Login Screens

Splash-Register-Login Screens

2. Hafta: API ile Tanışma ve İlk Adımlar

İkinci haftada, Retrofit’i öğrenip login ve register işlemleri için API bağlantılarını kurmaya başladım. İlk kez bu kadar detaylı bir API entegrasyonu yaptığım için başlangıçta zorlandım ama deneye yanıla sistemi oturtmayı başardım.

Bu sırada, görsel ve kullanıcı deneyimi iyileştirmeleri üzerine de çalıştım. Örneğin, internet bağlantısı olmayan bir kullanıcı login veya register olmaya çalıştığında bir hata mesajı göstermek gibi küçük ama önemli geliştirmeler yaptım.

Aynı zamanda, Mentorumdan düzenli olarak geri bildirim alarak uygulamanın genel yapısını optimize etmek için best practice yöntemlerini araştırdım, kodda olan hatalı kullanımları düzeltmeye çalıştım. Bu süreçte, Channel ve **StateFlow** yapılarının doğru kullanım alanlarını araştırarak uygulamada verimli bir şekilde kullandım.

User Detail Screen

User Detail Screen

3. Hafta: Kullanıcı Deneyimi ve Ürün Listeleme

Üçüncü haftaya, kullanıcıların giriş bilgilerini hatırlayan Remember Me özelliğini ekleyerek başladım. Bunun için **SharedPreferences ve [DataStore](https://developer.android.com/topic/libraries/architecture/datastore?hl=tr)** yapılarını araştırdım. Artık kullanıcı, uygulamayı tekrar açtığında doğrudan giriş yapılmış bir şekilde devam edebiliyordu. Bu sayede, ekran geçişlerini daha stabil hale getirdim.

Bu haftanın bir diğer önemli adımı, ürünlerin listelendiği ekranı geliştirmekti API’ye sırayla get_products, get_sale_products, get_categories ve get_products_by_category gibi istekler atarak, ürünlerin resimlerini, başlıklarını ve açıklamalarını LazyRow ve LazyColumn bileşenleriyle kaydırılabilir şekilde gösterdim. Bu kısmı geliştirirken, her detayın kullanıcı deneyimine katkısını düşünerek hareket ettim.

Layouts

Layouts

4. Hafta: Ürün Detayları ve Veritabanı Kullanımı

Son hafta, ürün detaylarını gösterecek ekranı geliştirdim. Ürüne tıklandığında, ürün ID’sini kullanarak API’den detayları çeken bir sistem kurdum. Bu kısımda biraz takıldım çünkü daha önce yazdığım kodlardan birazcık farklı bir işleyişle veriyi taşımam gerekiyordu. Daha önce benzer bir veri taşıma işlemi yaptığım UserId verisini, API’a istek attıktan hemen sonra alabiliyorken, ürünler kısmında ürünün id’sini alıp bu id ile birlikte API’a istek atmam gerekiyordu. İlk denemelerde zorlansam da ve bir günden fazla zamanımı bunun çözmeye harcasam da mentorumun yönlendirmesiyle bu kısmı başarıyla tamamladım.

Mentorumun önerisiyle, sürekli API’ye istek atmak yerine verileri **Room Database ile depolamayı öğrendim. Bu yapıyı uygulamaya entegre ettiğimde, veri okuma işlemleri** çok daha hızlı hale geldi. Sektördeki yoğun kullanım bu şekilde olduğu için bu yapıyı öğrenmek benim için önemliydi.

Başka yapılara da aşina olmam için mentorum bana ara ara yeni görevler veriyordu. Bunlardan bir tanesi API istekleri ile ilgiliydi. Aktif olarak istekleri servise paralel bir şekilde yani birbirlerinden bağımsız atıyordum, bunun yerine isteklerin servise birlikte çıkmasını sağlayacak yeni bir kod yazdım. Ayrıca, ürün detay ekranında görselleri kaydırılabilir şekilde göstermek için **HorizontalPager** kullanarak görsel iyileştirme yaptım.

Product List & Product Detail

Product List & Product Detail

Staj Sonu

Teknasyon’daki staj, android geliştirme yolculuğumda benim için büyük bir adım oldu. Bu süreçte sadece teknik bilgiler öğrenmekle kalmadım, aynı zamanda ekip içi iletişim, zaman yönetimi ve problem çözme gibi alanlarda da kendimi geliştirme fırsatı buldum. Bu süreçte edindiğim bilgileri ve öğrendiklerimi, kariyerimin sonraki aşamalarında kullanacağımdan eminim.

Bu değerli staj deneyimi için öncelikle mentorum Celal Baydar’a, bana destek olan Getcontact ekibine ve böyle değerli bir fırsatı sağlayan Teknasyon’a teşekkür ederim. Stajım, yazılım geliştirme sürecini daha derinlemesine anlamama yardımcı oldu ve gelecekteki projelerimde bana büyük bir güven verdi.


메타데이터
post_id
82e13d716e73
slug
staj-deneyimim-teknasyonda-4-haftalık-öğrenme-serüvenim-82e13d716e73
url
https://medium.com/@fatihbcg/staj-deneyimim-teknasyonda-4-haftal%C4%B1k-%C3%B6%C4%9Frenme-ser%C3%BCvenim-82e13d716e73
canonical_url
https://medium.com/@fatihbcg/staj-deneyimim-teknasyonda-4-haftal%C4%B1k-%C3%B6%C4%9Frenme-ser%C3%BCvenim-82e13d716e73
author_url
https://medium.com/@fatihbcg
status
ok
fetched_at
2026-07-20 13:07:22