hectorsvill / 100DaysOfSwift

#100daysofswift Projects and Notes

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

iOS Notes and more

Table of contents

MapKit

  • MapIt

      - A map view of COVID-19 resources located in City of Los Angeles 
    

StoreKit

  • Colors
    • View a list of colors, In-App Purchase unlocks all colors.

        -  Go to developer account and under Certificates, Identifiers & Profiles create a new certificate (In-App Purchase automaticly selected)
        -  In appstoreconnect go to Feaures, under In-App Purchase add and select Non-Consumable
            - Set Product ID, Reference Name, Pricing, and add a Localization.
            - Create a new user by going to Users & Access, Under Sandbox Tester 
        - Under Singing&Cabilities, + Capability In-App-Purchase
        - Use Sandbox account for testing
      

CoreML

ARKit

  • AR Dice

      - touch on a  location of the plane to roll the dice, shake the phone to roll again
    
  • AR Ruller

     - Measure objects on vertical planes in CentiMeters using 2 SCNNode positions   
    
  • Pokemon 3D

      - creating AR Resourcess
      - Image Tracking 
    

EventKit

  • myCalendar

      - Eventkit
      - EventStore
      - EkeCalendar
    

UIKit

  • LayOuts_Animations

      - UICollectionViewLayout, DiffableDataSource, UIViewControllerTransitioningDelegate
      - PinterestLayout Collection View
      - Circular Transition 
      - TableView animation
    
  • Slide out Menu

     - slide menu with smooth transition. (basic version for reference)
    

Code Challenges 🧐

Code Chanllenges

  • Hackerrank
  • leetcode
  • codewars.com
  • edabit.com

100DaysOfSwift

Challenge with hackingwithswift.com

Coordinator Pattern

extension String {
	func withPrefix(_ prefix: String) -> String {
		let check =  self.hasPrefix(prefix)
		if check {
			return self
		}
		print(check)
		return prefix + self
	}

	var isNumeric: Bool {
		for c in self {
			for i in 0...9 {
				if let n = Int(String(c)){
					if n == i { return true } }
			}
		}
		return false
	}

	func lineArray() -> [String] {
		var arr: [String] = []
		var newStr = ""

		for c in self {
			if c == "\n" {
				arr.append(newStr)
				newStr = ""
			} else {
				print(c)
				newStr += String(c)
			}
		}

		arr.append(newStr)
		return arr
	}

}

  • Project 21: Local Notifications

      - UNUserNotificationCenter, UNNotificationRequest
      - UNMutableNotificationContent, UNCalendarNotificationTrigger
      - UNTimeIntervalNotificationTrigger
      - Send reminders, prompts and alerts even when your app isn't running.
    

  • Project 20: Fireworks Night

      - Timer and follow()
      - SKEmitterNode
      - shake gesture 
    

fireworks

  • Project 19: JavaScript Injection

      - Making a shell app
      - Adding an extension: NSExtensionItem
      - Editing multiline text with UITextView
      - Fixing the keyboard: NotificationCenter
    

SpaceJam

  • Project 18: Debugging

      - Basic Swift debugging using print()
      - Debugging with assert()
      - Debugging with breakpoints
      - View debugging
    

  • Project 17: Space Race

      - SpriteKit
      - Timer, linearDamping, angularDamping
      - didBegin()
    

  • Project 16 : Capital Cities

      - Up and running with MapKit
      - Annotations and accessory views: MKPinAnnotationView
      - Creating a WKWebView programmatically
    

  • Fun Country Facts App

     -  Programmatic UI
     - Created Json file holding all data
     - Parsing JSON using the Codable protocol
     - performSelector(inBackground: , performSelector(onMainThread:
     - UIView Extension for NSLayoutConstraint.activate
     - Core Animation: Transform: CGAffineTransform
    

funcountryapp

  • Project 15: Animation

      - Switch, case, animate: animate(withDuration:)
      - Transform: CGAffineTransform
    

  • Project 14: Whack-a-Penguin

          - spritekit
          - SKCropNode
          - SKAction moveBy(x:y:duration:)
          - SKAction sequences
    

  • Project 13: Instafilter

      - Core Image, UISlider, writing to the photo library
      - Importing a picture
      - Applying filters: CIContext, CIFilter
      - Saving to the iOS photo library
    

  • Milestone: Projects 10-12

  • Details

     - You’ll need to make ViewController build on UITableViewController rather than just UIViewController.
      - Just like in project 10, you should create a custom type that stores an image filename and a caption string, then use either Codable or NSCoding to load and save that.
      - Use a UIAlertController to get the user’s caption for their image – a single text field is enough.
      - You’ll need to design your detail view controller using Interface Builder, then call instantiateViewController to load it when a table view row is tapped.
    

  • Project 12 : UserDefaults

         - Reading and writing basics: UserDefaults
          - [Fixing Project 10](https://github.com/hectorsvill/100DaysOfSwift/tree/master/Project12a/Project10): NSCoding
          - [Fixing Project 10](https://github.com/hectorsvill/100DaysOfSwift/tree/master/Project12b/Project10): Codable 
    

  • Project 11 : Pachinko

      - Falling boxes: SKSpriteNode, UITouch, SKPhysicsBody
      - Bouncing balls: circleOfRadius
      - Spinning slots: SKAction
      - Collision detection: SKPhysicsContactDelegate
      - Scores on the board: SKLabelNode
      - Special effects: SKEmitterNode
    

  • Project 10: Names to Faces

      - Designing UICollectionView cells
      - UICollectionView data sources
      - Importing photos with UIImagePickerController
      - Custom subclasses of NSObject
    

  • Project 9 : Grand Central Dispatch

      - DispatchQueue
      - perform(inBackground:)
    

  • Project 8 : Seven Swifty Words

      - addTarget()
      - enumerated()
      - count()
      - index(of:)
      - joined()
      - property observers
      - range operators
    

  • Project 7 : Whitehouse Petitions

      - JSON
      - Data
      - UITabBarController
    

  • Project 6 : Auto Layout

      - NSLayoutConstraint
      - Visual Format Language
      - layout anchors
    

  • Project 5 : Word Scramble

      - Closures
      - method return values
      - booleans
      - NSRange
    

  • Project 4 : Easy Browser

    • loadView()
    • WKWebView,
    • URLRequest
    • UIToolbar
    • UIProgressView
    • key-value observing

  • Project 3 : Social Media

      - UIBarButtonItem
      - UIActivityViewController
      - URL
    

  • Project 2 : Guess the Flag

      - Asset catalogs
      - UIButton, CALayer
      - UIColor
      - UIAlertController
    

Project 1 : Storm Viewer

- Constants and variables
- UITableView, UIImageView
- FileManager, storyboards
- User Defaults

About

#100daysofswift Projects and Notes


Languages

Language:Swift 99.8%Language:Ruby 0.1%Language:JavaScript 0.1%