- 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,JSONUIKit,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-iOSframework - Work with
SceneKitand 3D models
Swift,Xcode 14,iOS 13.0,Storyboard,Clean Swift,GraphQL,BlenderUIKit,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
JSONdata 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,JSONSwiftUI,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,RegexUIKit
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
MVPand ViewModels ofMVVMusing 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,MVVMUIKit,XCTest
Read more: Architecture-Patterns (repo)
- draw circle and arc using
CAShapeLayerandUIBezierPath - animate properties of CoreAnimation classes using
CABasicAnimationandCASpringAnimation - animate
UILabeltext content usingCADisplayLink - replicate layers using
CAReplicatorLayerwith move and rotate transforms - create a
CAEmitterLayerlayer withCAEmitterCelland 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
AVFoundationframework 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,JSONAlamofire,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)