Useful iOS Things GitHub Repository
github.com
github.com
There’s not been zero effort, but it isn’t completely in your face. That said when I reviewed the help pages, pointed a new Mac user at them and told her to go nuts, she refused to look and forgot that menu was there after a while. How do you solve that? People are either curious or they aren’t, but everything a new user needs is pretty much in there if they’re inclined to learn.
I personally thought it was one of them but for iOS
e.g. https://github.com/awesome-selfhosted/awesome-selfhosted
Some examples (just going down the readme):
> The observer pattern lets one object observe changes on another object. Apple added language-level support for this pattern in Swift 5.1 with the addition of Publisher in the Combine framework.
- Apple did not add language-level support, the Combine framework is a framework
- NSNotification center was added in iOS 2.0
extension ViewController: ImagePickerDelegate {
func didSelect(image: UIImage?) {
self.yourImageView.image = image
self.dismiss(animated: true, completion: nil)
}
}
> Good To GO- No you're not: what about error handling, permissions, etc.
- There are dozens of libraries for this on Github that do the above and more, why not use them?
func getDocumentDirectoryPath() -> URL {
guard let url = useFileHandler.urls(for: .documentDirectory,
in: .userDomainMask).first else { fatalError("Can't find path") }
return url
}
func createFile(resourceName: String, fileExtension: String) {
let fileURLProject = Bundle.main.path(forResource: resourceName, ofType: fileExtension)
let folderUrl = getDocumentDirectoryPath()
let fileUrl = folderUrl.appendingPathComponent("\(resourceName).\(fileExtension)")
do {
try useFileHandler.copyItem(atPath: fileURLProject ?? "", toPath: fileUrl.path)
} catch {
print(error)
}
}
- You shouldn't fatalError in code intended to be reusable and ready to blindly "copy and paste"- print(error) doesn't exactly inspire confidence
- Again, plenty of libraries exist for this (and Foundation's FileManager isn't that verbose anyway)
struct User: Codable {
var first_name: String
var last_name: String
var country: String
}
- You should use CodingKeys or JSONDecoder.KeyDecodingStrategy instead of snake_case- This section would benefit from a concrete example of JSON<->Codable<->JSON
...and so on. I hope I don't come off too critical here, I just think the author would be better off building something more akin to an Awesome list of links to blog posts, as opposed to a single source of truth of surface-level information where where the bar of knowledge is much higher.
Edit: forgot https://www.objc.io, definitely one of the best
[0]: https://www.hackingwithswift.com
[1]: https://cs193p.sites.stanford.edu
[2]: https://www.raywenderlich.com
[3]: https://www.swiftbysundell.com
I use C/C++ on iOS and I'll abandon the platform if they ever remove the support.