Articles

App Review Request in iOS

An important task that mobile app developers often face is encouraging users to rate and write reviews of their apps on the App Store or Google Play Store. In addition to increasing the popularity of the app, this can help you improve your app by getting users feedback. In this article, we will learn the best methods to request user ratings and reviews on the iOS platform. We will also look at how you can implement this process in both development frameworks with UIKit and SwiftUI.

Automatically Delete Screenshots on macOS

If we regularly take screenshots on our desktop or in a particular folder, these images can accumulate over time and consume unnecessary disk space. Additionally, these screenshots can be difficult to find and edit later. However, setting the default screenshot folder on macOS and clearing this folder regularly can help solve these problems. In this article, you will learn how you can set the default screenshot folder and set an automatic task to clean this folder regularly.

Higher Order Functions in Swift: A Guide to Improving Code Reusability and Readability

Higher Order Functions (HOFs) are powerful tools in Swift that can greatly improve the readability and reusability of code. These functions allow developers to pass functions as parameters or return functions as values from other functions, enabling the same functionality to be used across different functions. This can significantly reduce code repetition and make it easier to maintain and scale the codebase. Additionally, HOFs can make code more readable by using simple, concise functions with meaningful names.

How I Became an iOS Developer?

“I wrote this blog in Turkish about 1.5 years ago and it attracted a lot of attention. I wanted to share the English version with you again.” Last week, I posted a tweet to share my happiness, receiving more attention than expected, reaching 70,000+ people. Many people who have gone through similar paths or who want to start this journey have reached out to me and the questions were quite similar.

Hangi Dijital Araçları Kullanıyorum?

Teknoloji alanında hayatımı bir noktada kolaylaştırdığını düşündüğüm araçları kullanmayı oldukça seviyorum. Bu yüzden yeni çıkan araçları sürekli olarak deneyimleyip işime yarayanlar ile hayatıma devam ediyorum. Bu blogda yer alan araçların tamamını bir süredir (min. 2 ay) kullanıyorum ve bu deneyimlerimi sizlerle paylaşmak istedim. Blogu okumayı bitirdiğinizde, bahsettiğim toollardan bir tanesi dahi hayatınızı kolaylaştırmaya yardımcı olursa yazı amacına ulaşmış demektir. Araçları tanıtmaya başlamadan önce telefon ve bilgisayar tarafında Apple ekosistemini kullandığımı belirtmek isterim, bu bağlamda araçların bazıları diğer işletim sistemlerine uygun olmayabilir.

Swift'te Değer ve Referans Tipleri

Merhaba, bu blogda value/reference (değer/referans) tiplerinin özelliklerini, benzerliklerini ve farklılıklarını öğreneceksiniz. Aynı zamanda bu soyut kavramları aklınızda daha iyi canlandırmak için kod örnekleri ile pekiştireceğiz. Swift’teki türler iki kategoriye ayrılır. İlk kategori olan değer tipinde (value type) struct, enum, Tuple, Int, Bool, String ve Dictionary bulunur. Bu tiplerden biri ile tanımladığınız verilerin her biri hafızada benzersiz (unique) bir değer ile eşitlenir. Diğer kategori olan referans tipine örnek olarak class verilebilir. Class’tan oluşturduğumuz bir nesneyi farklı onlarca değişkene atasak bile hafızada karşılık geldiği değer aynı kalacaktır.

iOS Geliştiricilerinin 2022'de Odaklanması Gereken 5 Başlık!

Yeni bir yıl başladı ve çoğumuz muhtemelen bu yıl alanımızla alakalı neye odaklanmamız gerektiğini düşünüyoruz. iOS geliştirme dünyasında öğrenilecek ya da tekrar edilecek pek çok konu var. Donny Wals’un yazmış olduğu ve topluluğa katkı sağlayacağını düşündüğüm bu blogu Türkçeye çevirdim, keyifli okumalar! Bu kısa blogda, 2022’de daha iyi bir geliştirici olmanıza yardımcı olacağına inandığım beş şeyi listeledim. Daha doğrusu, 2022’nin ilk yarısı. Apple’ın bu yılki WWDC’de yeni ilginç şeyler yayınlamasını bekliyorum, yılın ikinci yarısı için yeni özelliklere göz atmak daha iyi olabilir.

Nasıl iOS Developer Oldum?

Geçtiğimiz hafta yalnızca mutluluğumu paylaşmak için attığım bir tweet, “beklediğimden” fazla ilgi gördü ve 70.000+ kişiye ulaştı. Benimle benzer yollardan geçen ya da bu yolculuğa başlamak isteyen pek çok kişi bana ulaştı ve aslında sorular birbirine oldukça benzerdi. Ben de tüm bu yolculuğu ve soruları tek bir blog yazısında toparlayarak topluluk için daha yararlı ve kalıcı bir hale dönüştürmeyi amaçladım. İşte karşınızda Sıfırdan Bire — iOS Developer Olmak! iOS Öncesi Üniversitenin ilk yıllarından itibaren günümüzün en popüler alanlarından biri olan yapay zeka, makine öğrenimi konularına ilgi duyuyordum fakat bir süre geçtikten sonra bu alanda çalışırken çok da keyif almadığımı “belki de benim için doğru alan bu değildir.

Swift ve Sınıflar

Bu yazıda Nesneye Yönelik Programlama’nın temel kavramlarından biri olan sınıfların (classes) Swift dilinde nasıl kullanıldığından bahsedeceğim. Olabildiğince sade ve gerçek hayattan örnekler vererek açıkladığım bir yazı olacak, şimdiden keyifli okumalar. Sınıf Nedir? Sınıf, nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Evet bu tanım biraz soyut olmuş olabilir, daha somut hale getirmek için gerçek hayattan örneklersek bu konunun daha net anlaşılacağını düşünüyorum.

SwiftUI ve Butonlar

Apple, butonları “Bir eylemi başlatan kontrol.” olarak tanımlıyor. Bu yazımda sizlere SwiftUI’da butonların işlevini ve bu butonları özelleştirmeyi anlatacağım. SwiftUI ve Butonlar Kapak Fotoğrafı Button nedir? Butonların ne olduğunu uzun uzadıya anlatmaya gerek olmadığını düşünüyorum, hepimizin bildiği gibi kullanıcıların dokunmasıyla aksiyon alan bir kontrol. Daha önce UIKit deneyiminiz var ise orada bulunan “UIButton” ile oldukça benzer. Fakat daha esnek ve çok daha kolay özelleştirilebilir. Az sonra bir kaç satırda oldukça güzel bir buton oluşturduğumuzu göreceksiniz.

Hangi Dijital Araçları Kullanıyorum?

Markdown desteği, yeni buton stili, özelleştirilebilir listeler ve daha fazlası Apple’ın her yıl düzenlemiş olduğu Worldwide Developers Conference yani kısaca WWDC, 2021 yılında bizleri pek çok yenilik ile karşıladı. Bu yazımda SwiftUI 3.0 ile birlikte gelen yenilik ve geliştirmelerden bahsedeceğim. SwiftUI 3.0’ın iOS 15, iPadOS 15, macOS 12 ve watchOS 12 ve üzeri sürümlerle uyumlu olduğunu hatırlatmakta fayda var. Tüm bu güncellemeleri anlatmaya başlamadan önce minik bir değişiklikten bahsetmek isterim, bir Xcode projesinde Info.

Python 3.9 - Bilmeniz Gerekenler

Python, topluluğun ihtiyaçları doğrultusunda sürekli olarak güncellenmeye devam ediyor. Aynı zamanda yakın gelecekte en çok kullanılan dil olma konusunda da büyük bir aday. Python’ın yeni versiyonu olan 3.9 sürümünde pek çok yenilik mevcut. Bu yazımda bu yeniliklerden bahsedeceğim. Beta Versiyon Kurulumu Beta versiyonu kullanabilmek için bazı kurulumlar yapmamız gerekiyor. Bu kurulumları yapmak için ihtiyacımız olan adımlar şunlar: wget [https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgz tar](https://www.python.org/ftp/python/3.9.0/Python-3.9.0a5.tgztar) xzvf Python-3.9.0a5.tgz cd Python-3.9.0a5 ./configure — prefix=$HOME/python-3.9.0a5 make make install $HOME/python-3.

Flutter’da Dinamik Tema Oluşturmak

Flutter’da çok pratik ve hızlı bir şekilde mobil uygulamalar oluşturabiliyoruz. Aynı zamanda Flutter uygulamamız için dinamik temalar oluşturmak da bir bu kadar kolay. MaterialApp widget’ın içinde koyu ve açık renk temalar için renk paleti belirleyebilirsiniz. Ayrıca uygulamanızın bazı kısımlarında Theme widget kullanarak temayı özelleştirebilirsiniz. Bununla birlikte, uygulamanızı geliştirirken kendi özel temanızı uygulamak isteyebilirsiniz. Flutter’da bulunan yerleşik tema, daha gelişmiş Flutter projeleri için yeterli gereksinimleri sağlayamayabilir. Diyelim ki uygulamanızın bir bölümünde çok fazla metin kutusu (textbox) var ve hepsine belirli renkler tanımlamak istiyorsunuz.

En Çok Kullanılan Python Metod ve Fonksiyonları

En Çok Kullanılan Python Metod ve Fonksiyonları Fonksiyonların, Python’ın en büyük avantajlarından olduğunu söylesek yanılmayız sanıyorum. En azından Veri Bilimi ile uğraşırken bizlere pek çok kolaylık sağlarlar. Ben de bu yazıda sizlere Veri Bilimi’nde en çok ihtiyacımız olan fonksiyon ve metodları derledim. Bir çoğumuz bu fonksiyonlara hakim olsak da zaman zaman unutulan veya eksik kalan kısımlar olabiliyor. O yüzden en temelden başlayalım! Aşağıdaki gibi bir değişkenimiz olduğunu varsayalım: a = ‘selam!

VS Code ile Jupyter Notebook

Bir çok yazılımcının en sevdiği IDE muhtemelen Visual Studio Code. Gerek stabilliği, gerek bilgisayarı az yorması ve temiz arayüzü sayesinde gönülleri fethetmeyi başarıyor. VS Code sayesinde pek çok yazılım dilini tek bir IDE ile yazabilmek mümkün. Az sonra VS Code üzerinde Jupyter Notebook kullanımı için gerekli kurulumları sizlere anlatacağım. Öncelikle, neden Jupyter Notebook? Kodun sadece belirli bir kısmını çalıştırabilirsiniz. (Yüzlerce satırlık programın sadece revize ettiğiniz yerini çalıştırarak daha çabuk çıktıya ulaşırsınız.

Google Developer Student Clubs Yolculuğu!

Herkese selam, bu yazıda sizlere Developer Student Clubs maceramdan ve deneyimlerimden bahsedeceğim. Öncelikle, Nedir bu Developer Student Clubs nam-ı diğer DSC? Google Developers tarafından desteklenen öğrenci topluluklarıdır. Adından da belli olduğu üzere teknolojiyle ilgilenmeyi seven geliştirici öğrencileri bir araya toplamayı amaçlıyor. Ayrıca tüm lisans ve lisans üstü öğrencileri kapsıyor. Bir çok yerde bu şekilde tanımlanıyor DSC, fakat bu kadar mı? Hayır, çok daha fazlası. :) Developer Student Clubs sayesinde öncelikle kendinizi ve core ekibinizi, daha sonrasında ise topluluğunuzdaki insanları güncel teknolojiler, bilhassa Google Teknolojileri hakkında bilgilendirip, Study Jam olarak isimlendirdiğimiz workshoplar düzenleyebiliyorsunuz.

Hangi Dijital Araçları Kullanıyorum?

Planted July 13, 2022

Teknoloji alanında hayatımı bir noktada kolaylaştırdığını düşündüğüm araçları kullanmayı oldukça seviyorum. Bu yüzden yeni çıkan araçları sürekli olarak deneyimleyip işime yarayanlar ile hayatıma devam ediyorum. Bu blogda yer alan araçların tamamını bir süredir (min. 2 ay) kullanıyorum ve bu deneyimlerimi sizlerle paylaşmak istedim. Blogu okumayı bitirdiğinizde, bahsettiğim toollardan bir tanesi dahi hayatınızı kolaylaştırmaya yardımcı olursa yazı amacına ulaşmış demektir.

Araçları tanıtmaya başlamadan önce telefon ve bilgisayar tarafında Apple ekosistemini kullandığımı belirtmek isterim, bu bağlamda araçların bazıları diğer işletim sistemlerine uygun olmayabilir.

Raycast

Macbook kullanıcılarının sürekli olarak kullandığı Spotlight’ın işlevsel hali olarak özetleyebiliriz. Spotlight’dan ayıran özelliği ise içerisinde kopyalama geçmişi(clipboard history), ekran hizalama özellikleri ile gelmesi gibi özellikleri sıralayabiliriz fakat elbette sadece bu iki özellikten dolayı kullanmıyorum. Benim hayatımı en çok kolaylaştıran özelliği, içerisinde bir eklenti marketi bulunması ve bu market üzerinden işinize yarayacak pek çok eklentiyi dahil edebilmeniz. Örneğin Google Drive eklentisi ile birlikte buluttaki dosyalarınıza CMD + Space kısayolu ile pratik bir şekilde ulaşabiliyorsunuz. Bunun gibi pek çok eklentiyi indirerek Raycast’i özelleştirebilirsiniz, tüm bu özelleştirmeleri yaptıktan sonra yalnızca bir spotlight araması ile pek çok işinizi kolaylıkla halledebiliyorsunuz.

Raycast bireysel kullanımlar için ücretsiz ve yalnızca MacOS platformunda hizmet veriyor.
raycast

Amphetamine

MacOS’e geçtiğim ilk günden beri kullandığım bir araç ve amacı oldukça basit. Ekranın uyku moduna geçme süresini ayarlamanızı sağlıyor. İsim/amaç uyumu da her zaman hoşuma gitmiştir. App Store üzerinden ücretsiz olarak indirebilirsiniz.
amphetamine

Hot

Hot da bir önceki araç gibi tek bir amaca hizmet ediyor, anlık işlemci sıcaklığını göstermek. Menü bar üzerinde sürekli olarak işlemci sıcaklığını görmeyi seviyorum, verimliliği artıran bir araç değil fakat menü barımın olmazsa olmazlarından. 🙂 Tamamen açık kaynak olarak geliştirilen projeye buradan ulaşabilirsiniz.

Magnet

Magnet’i pek çok MacOS kullanıcısı biliyordur fakat yine de değinmekte fayda var. Windows’da built-in olarak bulunan pencere hizalamaları MacOS’de yapmak mümkün olmuyor. Bu yüzden Magnet ya da alternatiflerine yönelmemiz gerekiyor, az önce de bahsettiğim gibi pencereleri hizalamanızı sağlıyor. Magnet App Store üzerinde ücretli olarak satılıyor fakat ben aldığımda 2-3₺ gibi komik bir fiyata sahipti, şimdilerde biraz daha artmış. Magnet’e ücretsiz ve açık kaynak bir alternatif olarak Rectangle’ı tavsiye edebilirim.

magnet

Cron

Genelde tercihim native uygulamalardan yana olsa da konu takvim olunca Cron’u kullanmaktan gerçekten keyif alıyorum. Tasarımı ve kullanıcı deneyimi açısından özenerek tasarlandığı her halinden belli. İçerisinde bulunan kısayollar ile birlikte saniyeler içerisinde bir arkadaşınıza toplantı atabiliyor farklı zaman dilimlerine geçiş yapabiliyorsunuz. Automatic event blocking, Event auto-merge, Meeting rooms gibi pek çok özelliğinin yanı sıra diğer uygulamalarla olan entegrasyonu Cron’u diğer takvim uygulamalarından ayırıyor. Henüz ön erişim aşamasında olsa da her gelen yenilikle birlikte Cron’un başarısını seyretmek oldukça keyifli. Tek eksisi, bir mobil uygulamaya sahip olmaması olabilir ve o da yapım aşamasında diye biliyorum. Eğer Cron’u denemek isterseniz Twitter ya da mail aracılığı ile bana ulaşırsanız elimde olan davet kodlarından birini sizlerle paylaşabilirim.

cron

Notion

Son yıllarda artık herkesin dilinden düşmeyen fakat bana kalırsa kullanmanın gerçekten bir ustalık gerektirdiği üretkenlik araçlarından biri. İlk çıktığı zamanlardan itibaren kullanmaya çalışsam da bir türlü devamlılığı sağlayamamıştım. Geçtiğimiz aylarda tekrar aktif olarak kullanmaya başladım ve blog taslaklarımı/fikirlerimi, uygulama fikirlerimi ve bütçe takibi gibi pek çok şeyi Notion’da tutuyorum. Muhtemelen potansiyelinin yalnızca %20’sini kullanıyorum, daha fazlasını kullanmak isterseniz Barış Özcan’ın Notion hakkında hazırladığı videolar oldukça ilham verici. Gündelik hayata entegre etmesi ve sürdürülebilirliği ilk başlarda zor fakat sonrasında hayatı kolaylaştırdığı aşikar diye düşünüyorum.

Homebrew

Homebrew ise MacOS işletim sisteminde terminal üzerinden uygulama ve paket indirme/güncelleme/silme işlemlerine olanak sağlıyor. “brew install” komutu ile pek çok paket ve uygulamaya pratik bir şekilde ulaşabiliyoruz. Özellikle Linux işletim sisteminden MacOS’a geçenler için hayat kurtarıcı olacaktır.

Fig

Dürüst olmak gerekirse terminal komutları ile aram pek iyi değil fakat Fig ile birlikte terminal ile iyi anlaşmaya başladım. En basit anlatımla Fig, mevcut terminalinize otomatik tamamlama özelliğini ekliyor. Bu sayede terminal “leb demeden leblebiyi” anlayacak hale geliyor. Özellikle git komutlarını kullanırken Fig gerçek anlamda işimi kolaylaştırıyor/hızlandırıyor. Fig’i ücretsiz olarak buradan indirebilirsiniz. Ayrıca eğer Windows ya da Linux kullanıyorsanız bekleme listesine katılabilirsiniz.

fig

Sourcetree

Atlassian tarafından sunulan bir git client. Git işlemlerini bir arayüz üzerinden yapmanızı sağlıyor, şirkete ilk çalıştığım zamanlar kullanmaya başlamıştım ve arayüzü bir miktar karmaşık gelmişti fakat bir haftalık kullanımdan sonra git geçmişini kolay bir şekilde görmek ve diğer git işlemlerini tek tıkla yapabilmek işimi oldukça kolaylaştırdı. Ayrıca bu uygulamanın zaman zaman çökmeleriyle meşhur olduğunu hatırlatmak isterim. :D Ücretsiz olarak buradan ulaşabilirsiniz. Alternatif olarak Fork’u da duymuştum fakat hiç deneme şansım olmadı.

Mail

Mail uygulaması olarak daha öncesinde Spark kullanmıştım fakat fazla karmaşık geldiğinden native mail uygulamasına geçtim. Gün içinde çok fazla mailleşme ihtiyacım olmuyor ve sadeliği ile native mail uygulaması hoşuma gidiyor fakat sizlerin tavsiye edeceğiniz mail uygulamaları var ise şans vermek isterim.

Geliştirme Ortamı

iOS uygulama geliştirdiğim için bu noktada alternatifim yok. Tüm geliştirmeleri XCode ile yapıyorum. Kişisel websitemi düzenlemek ve diğer dillerde bir şeyler karalamak istersem de VSCode’u tercih ediyorum. VSCode’u ayda sadece 3-4 saat kullandığım için çok da büyük beklentilerim yok. Genel olarak her iki IDE’nin de sadeliğinden ve performansından memnunum.

Kapanış

Gündelik hayatta çoğunlukla kullandığım ve hayatımı kolaylaştırdığını düşündüğüm uygulamaları derledim. Yeni çıkan araçları sürekli olarak test etmeye devam ediyorum ve aralarından kalıcı olarak kullanmaya devam ettiklerimi buradan paylaşmaya devam edeceğim. Eğer bu uygulamalara daha iyi alternatifler var ise sizlerden tavsiye almak isterim. Ayrıca her türlü geribildirim için bana X ya da hi@dogancan.dev adresinden ulaşabilirsiniz.