- This is a full-featured app (excluding purchases) that allows users to order glasses from the online store.
- The app has a shopping cart where users can add and remove items, as well as a wish list where they can keep their favorite items for future purchases.
- Users can also place orders, choose shipping options, enter their address for delivery, and view their order history.
- The project was developed for the purpose of studying Clean Architecture and MVP presentation pattern, as well as for learning Firebase frameworks such as AuthFirebase and RealtimeDatabase.
Swift
,CocoaPods
,SwiftLint
,AutoLayout
,async/await
,JSON
UIKit
,Stevia
,CoreAnimation
,FirebaseAuth
,FirebaseDatabase
,Facebook SDK
,Network
,URLSession
Read more: 07-RayBan-Store (repo)
- The SpaceX app is an iOS application that provides information about SpaceX rockets and launches
- Develop the application using the Clean Swift architecture
- Learn GraphQL and
Apollo-iOS
framework - Work with
SceneKit
and 3D models
Swift
,Xcode 14
,iOS 13.0
,Storyboard
,Clean Swift
,GraphQL
,Blender
UIKit
,Apollo-iOS
,SceneKit
,URLSession
,CoreGraphics
Read more: SpaceX (repo)
- The project is a food ordering app that allows users to sign up, sign in, browse menus, add items to their cart from various categories, and place orders.
- All images and
JSON
data are stored in the Resources folder in this repository and retrieved usingURLSession
.
Swift
,Xcode
,Storyboard
,MVVM
,JSON
,Codable
,Foundation
,UIKit
,URLSession
,Keychain
,NotificationCenter
Read more: 10-Food (repo)
- This project is an iOS application designed to help users manage their daily tasks.
- With the app, users can easily view and organize their tasks based on the day they created them. The app also provides a feature that allows users to add new tasks as needed.
- In addition, the app includes a variety of features designed to enhance the user experience. For example, there is a month picker that allows users to easily navigate to a specific month. Similarly, the day picker allows users to select a specific day and view all the tasks created on that day. Moreover, the app provides an indicator that shows the number of tasks created on a particular day, allowing users to quickly identify their busiest days.
Swift
,Xcode
,JSON
SwiftUI
,Combine
,Foundation
Read more: Planner App (repo)
- A simple application with a list of patterns grouped by categories.
- All the images, as well as the design of the application, were created in Sketch.
- Each pattern has a brief description, popularity, and complexity indicators for Swift developers, and a code example.
- The code samples are downloaded from this Git repository and have a specific situation implementation for the ios developer.
- Learn design patterns, understand and apply them on a concrete example
Sketch
,Swift
,Xcode
,Storyboard
,Playground
,JSON
,Regex
UIKit
Read more: Design-Patterns (repo)
- This project is a simple app that consists of a login and main screens.
- The login scene allows users to input a username and password, and if the combination is valid, the user is presented with the main scene.
- The main scene simply displays the username and a logout button.
- The main goal of this project was to learn the difference in data passing and routing between screens using three different architectural patterns (
MVC
,MVP
,MVVM
) through a simple app example with two screens.
- The app has been thoroughly tested using
XCTest
. The testing includes unit tests and UI tests. - Unit tests are written for Presenters of
MVP
and ViewModels ofMVVM
using the Test Double unit testing concept. For example, a test case was written to verify that the router method representing the main screen is called after the "Login" button is pressed. - UI tests were also written to test the app's user interface and overall behavior. For example, a test case was written to ensure that after entering valid login credentials and tapping the "Login" button, the app transitions to the main screen.
Swift
,XCode
,MVC
,MVP
,MVVM
UIKit
,XCTest
Read more: Architecture-Patterns (repo)
- draw circle and arc using
CAShapeLayer
andUIBezierPath
- animate properties of CoreAnimation classes using
CABasicAnimation
andCASpringAnimation
- animate
UILabel
text content usingCADisplayLink
- replicate layers using
CAReplicatorLayer
with move and rotate transforms - create a
CAEmitterLayer
layer withCAEmitterCell
and manage its properties
Read more: Core-Animation (repo)
- No Storyboard, no UITableView
- This project is an audio player app that allows users to play music from their device's local storage.
- The app loads songs from the main bundle using the Storage class, which uses the
AVFoundation
framework to extract metadata from the songs, such as title, artist, and artwork. - The app supports remote control events, such as play, pause, next, and previous.
Swift
,MVC
,KVO
, Delegation patternUIKit
,AVFoundation
,MediaPlayer
Read more: 06-Audio-Player (repo)
- This project is a task manager app developed for iOS devices.
- It allows users to create, edit and delete tasks, set their priority and status - their place in the task list will depend on it.
- In this app are considered different solutions for task storage, such as UserDefaults, Realm, and remote API.
Swift
,Xcode
,SPM
,Storyboard
,XIB
,MVC
,Ascyn/await
,REST API
,JSON
Alamofire
,Realm
,UIKit
,Foundation
Read more: To-Do-Manager (repo)
- create entity:
- with auto class definition
- with manual class definition
- create new entity instances
- change entity atributes
- delete entity instances
- fetch context
- save context
- implement simple CoraData manager
- handle context changes usin NSFetchedResultsControllerDelegate
- create relationships between entities
Read more: CoreDataDemo (repo)