Skip to content

Instantly share code, notes, and snippets.

@AviTsadok
AviTsadok / filterNameDouble.swift
Created July 15, 2023 18:28
Filter name double
public func filterNameHalfLoop(name: String, fromArray collection: [String]) -> [String] {
var result: [String] = []
let count = collection.count
var index = 0
while index < count {
let tempName1 = collection[index]
if index + 1 < count {
let tempName2 = collection[index + 1]
@AviTsadok
AviTsadok / filterNameForEach.swift
Created July 15, 2023 18:24
Filter Name For Each
func filterName(name: String, fromArray collection: [String]) -> [String] {
var result: [String] = []
for tempName in collection {
if tempName == name {
result.append(tempName)
}
}
return result
}
@AviTsadok
AviTsadok / filterNameWithoutIterator.swift
Created July 15, 2023 18:23
Filter name without iterator
func filterName(name: String,
fromArray collection: [String]) -> [String] {
var result: [String] = []
let indices = collection.indices
var currentIndex = indices.lowerBound
while currentIndex < indices.upperBound {
let tempName = collection[currentIndex]
if tempName == name {
@AviTsadok
AviTsadok / NavigationWidgetFull.swift
Created September 18, 2022 03:35
NavigationWidgetFull.swift
struct NavigationWidget: Widget {
var body: some WidgetConfiguration {
ActivityConfiguration(for: NavigationAttributes.self) { context in
LockScreenView()
} dynamicIsland: { context in
DynamicIsland {
DynamicIslandExpandedRegion(.center) {
Text("ETA: " + context.state.eta.formatted())
}
DynamicIslandExpandedRegion(.bottom) {
@AviTsadok
AviTsadok / NavigationWidgetEmpty.swift
Created September 18, 2022 03:34
NavigationWidgetEmpty.swift
struct NavigationWidget: Widget {
var body: some WidgetConfiguration {
ActivityConfiguration(for: NavigationAttributes.self) { context in
// lock screen view
} dynamicIsland: { context in
// dynamic island
}
}
}
@AviTsadok
AviTsadok / NavigationWidgetBundle.swift
Created September 18, 2022 03:33
NavigationWidgetBundle.swift
import WidgetKit
import SwiftUI
@main
struct Widgets: WidgetBundle {
var body: some Widget {
NavigationWidget()
}
}
@AviTsadok
AviTsadok / stopNavigation.swift
Created September 18, 2022 03:32
stopNavigation.swift
func stopNavigation() async {
await activity?.end()
}
@AviTsadok
AviTsadok / updateNavigation.swift
Last active September 18, 2022 03:32
updateNavigation.swift
func updateNavigation() async {
await activity?.update(using: NavigationAttributes.NavigationStatus(nextTurn: .right, eta: Date()))
}
@AviTsadok
AviTsadok / startNavigation.swift
Last active September 19, 2022 11:47
startNavigation.swift
func startNavigation() {
let attr = NavigationAttributes(destination: "New York")
let initialState = NavigationAttributes.NavigationStatus(nextTurn: .left, eta: Date())
do {
self.activity = try Activity<NavigationAttributes>.request(attributes: attr, contentState: initialState)
} catch let error {
print(error.localizedDescription)
}
}
@AviTsadok
AviTsadok / NavigationAttributes.swift
Created September 18, 2022 03:27
NavigationAttributes.swift
import Foundation
import ActivityKit
public enum NavigationDirection: Codable {
case right
case left
case straight
var toString: String {
switch self {