https://github.com/akaanuzman/appcentdeezercase
Appcent Case Study
https://github.com/akaanuzman/appcentdeezercase
Last synced: 3 months ago
JSON representation
Appcent Case Study
- Host: GitHub
- URL: https://github.com/akaanuzman/appcentdeezercase
- Owner: akaanuzman
- Created: 2023-05-08T12:40:25.000Z (over 2 years ago)
- Default Branch: master
- Last Pushed: 2023-05-15T01:24:51.000Z (over 2 years ago)
- Last Synced: 2024-10-09T13:10:50.609Z (about 1 year ago)
- Language: Swift
- Homepage:
- Size: 822 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
## 🎧 Appcent Deezer Case
### 🔎 Case İncelemesi (Case Preview)
https://github.com/akaanuzman/AppcentDeezerCase/assets/55639112/908a5ac4-2cef-4bef-8617-302cbc78e631Videonun sesini açmayı unutmayın! (Don't forget to unmute the video!)
https://github.com/akaanuzman/AppcentDeezerCase/assets/55639112/dcf61590-ed29-4c74-9d79-60a2a7f42caa
https://github.com/akaanuzman/AppcentDeezerCase/assets/55639112/8720104a-30bc-4c5e-b813-307d24db8462
https://github.com/akaanuzman/AppcentDeezerCase/assets/55639112/b2198e18-21ed-4bbd-a384-495601010c05
### 🇹🇷 Türkçe
* #### 👨🏻💻 Case Hakkında
* Öncellikle kendimi Swift tarafında geliştirdiğim, bilmediğim çok fazla şeyi öğrendiğim, uçtan uca yapı kurarak yazdığım ilk Swift çalışması oldu. Üzerine oldukça düşünülmüş temel seviye programlama becerileri isteyen bir çalışma olmuş bu güzel çalışmayı eksiksiz bir şekilde teslim etmenin gururunu ve aranıza katılacak olmanın heyecanını ve sevincini yaşıyorum. Ayrıca bu güzel çalışma için Appcent ekibine teşekkür ediyorum. Kod tarafında elimden geldiğince temiz ve düzenli bir şekilde yazmaya çalıştım. Eksiklerim, yanlış yaptığım yerler vardır elbette.Bunlarla ilgili kendimi geliştirebilmem için sizden geri dönüş bekliyorum.* #### 📁 Klasör Yapısı, Yazılım Mimarisi ve Teknik Detaylar
* Verilen çalışma SwiftUI ile geliştirilmiş olup temiz kod yazılımına ve SOLID prensiplerine oldukça dikkat edilmeye çalışılmıştır. Ayrıca Swift programlama dilinin ve nesne yönelimli programlamanın tüm efektif özelliklerinin kullanılmasına özen gösterilmiştir. SwiftUI framework'ünün vermiş olduğu özellikler, esneklikler kullanılmaya ve uygulanmaya çalışılmıştır.Design Pattern olarak MVMM kullanılmış olup tasarım kısmında ise Atomic Design metodolijisi uygulanmıştır. API tarafından çekilmeyen string veriler için localizastion yapısı kurulmuştur. Github tarafında ise branch yapısına aşina olunması açısında dev branch'i oluşturulmuş ve gerekli işlemler bittikten sonra pull request atılarak çalışma master branch'inde mergelenmiştir.
* Klasör yapısı olarak utils klasörü altında enum type'lar, extensionlar ve localization işlemleri gibi yapılar bulunmaktadır. Tüm uygulama içi sabitlerimiz, modellerimiz, viewmodel sınıflarımız, servis katmanımız, viewmodifier'larımız gibi projenin tüm ana hatları products klasörü altında bulunmaktadır. Uygulama içi bulunan tüm ekranlarımız ise views klasörü altında yerini almaktadır.* #### 🚨 Pull Requests
* [API Bağlantıları ve proje yapılarının kurulup tasarım kısmının büyük ölçüde bittiği ilk pull request](https://github.com/akaanuzman/AppcentDeezerCase/pull/2)
* [Favori Listesi tasarımı ve favoriye ekleme, silme, gösterme işlemlerinin yapıldığı ikinci pull request](https://github.com/akaanuzman/AppcentDeezerCase/pull/3)* #### 🎁 Bağımlılıklar
* [Alamofire](https://github.com/Alamofire/Alamofire)
* [KingFisher](https://github.com/onevcat/Kingfisher)
* [Swift-log](https://github.com/apple/swift-log)
### 🏴 English
* #### 👨🏻💻 About Case
* First of all, it was the first Swift work that I developed myself in Swift, learned a lot of things that I did not know, and wrote by establishing an end-to-end structure. I am proud of delivering this beautiful work, which has been a well-thought-out work that requires basic level programming skills, and I am excited and happy to be joining you. I would also like to thank the Appcent team for this nice work. On the code side, I tried to write as cleanly and neatly as I could. Of course, there are my shortcomings and places where I made mistakes. I am waiting for your feedback so that I can improve myself about them.* #### 📁 Folder Structure, Software Architecture and Technical Details
* The given work has been developed with SwiftUI and a great deal of attention has been paid to clean code software and SOLID principles. In addition, all the effective features of Swift programming language and object-oriented programming have been tried to be used. The features and flexibility provided by the SwiftUI framework have been tried to be used and applied. MVMM has been used as the Design Pattern and the Atomic Design methodology has been applied in the design part. A localization structure has been established for string data that is not retrieved by the API. On the Github side, a dev branch was created in order to become familiar with the branch structure, and after the necessary processes were completed, a pull request was made and the working master branch was merged.
* As a folder structure, there are structures such as enum types, extensions and localization operations under the utils folder. All the outlines of the project, such as all our in-app constants, models, viewmodel classes, service layer, viewmodifiers, are under the products folder. All our in-app screens are located under the views folder.* #### 🚨 Pull Requests
* [The first pull request where API Connections and project structures are established and the design part is largely finished.](https://github.com/akaanuzman/AppcentDeezerCase/pull/2)
* [Second pull request for Favorite List design and adding, deleting, displaying to favorites](https://github.com/akaanuzman/AppcentDeezerCase/pull/3)
* #### 🎁 Dependencies
* [Alamofire](https://github.com/Alamofire/Alamofire)
* [KingFisher](https://github.com/onevcat/Kingfisher)
* [Swift-log](https://github.com/apple/swift-log)