Alternative 1: Force unwrap non-optional dependencies
- No need no use any methods to unwrap on each usage, unless there are cases you anticipate a value to be nil.
var value: String!
value = "Hi"
print(value.count) | package com.johnholdsworth.swiftbindings; | |
| import com.johnholdsworth.swiftbindings.SwiftHelloTypes.TextListener; | |
| import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMap; | |
| import com.johnholdsworth.swiftbindings.SwiftHelloTypes.ListenerMapList; | |
| public interface SwiftHelloBinding { | |
| // Messages from JavaActivity to Swift | |
| public interface Listener { | |
| public void setCacheDir( String cacheDir ); | |
| public void processNumber( double number ); |
| struct CreateAccountViewModel { | |
| var image: Image = Image("IntroImage") | |
| var accentText: String = "Choose Account type" | |
| var choosePathVM: ChoosePathViewModel = ChoosePathViewModel(index: 0, explanations: [.employee, .business]) | |
| var buttonImage: Image = Image(systemName: .rightArrowLine) | |
| var spacerHeight: CGFloat = 40 | |
| func sendHeader() { headerAction?(choosePathVM.current) } | |
| var currentHeader: HeaderBody { choosePathVM.current } | |
| var employeeDestination: Bool { choosePathVM.current.header == HeaderBody.employee.header } | |
| var formModel: SignupFormViewModel { employeeDestination ? .employee : .business} |
| struct CreateAccountViewModel { | |
| var image: Image = Image("IntroImage") | |
| var accentText: String = "Choose Account type" | |
| var choosePathVM: ChoosePathViewModel = ChoosePathViewModel(index: 0, explanations: [.employee, .business]) | |
| var buttonImage: Image = Image(systemName: .rightArrowLine) | |
| var spacerHeight: CGFloat = 40 | |
| var currentHeader: HeaderBody { | |
| get { | |
| choosePathVM.current |
| struct CreateAccountViewModel { | |
| var image: Image | |
| var accentText: String | |
| var choosePathVM: ChoosePathViewModel { | |
| didSet { | |
| self.currentHeader = choosePathVM.current | |
| self.employeeDestination = choosePathVM.current.header == HeaderBody.employee.header | |
| self.authViewModel = employeeDestination ? .employeeForm : .businessForm | |
| self.formModel = employeeDestination ? .employee : .business |
| import UIKit | |
| public extension DateFormatter { | |
| static let iso8601withFractionalSeconds: DateFormatter = { | |
| let formatter = DateFormatter() | |
| formatter.calendar = Calendar(identifier: .iso8601) | |
| formatter.locale = Locale(identifier: "en_US_POSIX") | |
| formatter.timeZone = TimeZone(secondsFromGMT: 0) | |
| formatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ss.SSSXXXXX" |
| Pod::Spec.new do |s| | |
| s.name = "BlaBlabla" | |
| s.version = "0.1.0" | |
| s.summary = "Description of your project" | |
| s.description = "Mandatorily longer description of your project" | |
| s.homepage = "https://github.com/ElevatedUnderdogs/PracticeCocoaPod1/tree/main" | |
| s.license = "Description of your licence, name or otherwise" | |
| s.author = { "Developer" => "[email protected]" } | |
| s.platform = :ios, "9.0" |
| hash: 463098683679436443 starts | |
| tmpAddress: 0x14e510c20, indexPath: [0, 0], url: https://random.dog/00186969-c51d-462b-948b-30a7e1735908.jpg line 42 | |
| Image cache not available tmpAddress: 0x14e510c20, indexPath: [0, 0], url: https://random.dog/00186969-c51d-462b-948b-30a7e1735908.jpg | |
| 98 assigning data task! tmpAddress: 0x14e510c20, indexPath: [0, 0], url: https://random.dog/00186969-c51d-462b-948b-30a7e1735908.jpg | |
| before running: nil hash: 463098683679436443 | |
| after running: nil hash: 463098683679436443 | |
| 109 interceptor data action: Optional((Function)), interceptor task: nil | |
| hash: 463098683679436443 ends | |
My stretch goals:
If you have the following properties/skills it is highly likely you will get an offer
Add 1200+ software or software recruiter Connections on Linkedin (this is the foundation of your iOS job hunt pipeline). If you don't have this, it is extremely difficult to get to the skill parts.
Create a Linkedin profile that has "jobs" and "Company's" for all the software projects you've worked on, and if you have none, then "jobs" or projects you intend to work on. Like on my Linkedin, I created company pages for projects I've worked on "In order to present them better to the employment market." I don't condone accepting jobs with false pretenses to an employer's detriment, however, the sooner you get experience with the lengthy interview processes, the sooner you can start passing them. You might just finish those projects by the time you get an offer.
Go through 40