• Using Command-Line Arguments to Configure In-App Dependencies

    Red River College - Princess Campus - Room P316

    Using Command-Line Arguments to Configure In-App Dependencies: Jeffrey will walk through his latest blog post "Using Command-Line Arguments to Configure In-App Dependencies" found at https://jeffreyfulton.ca/blog/2018/08/using-command-line-arguments-to-configure-in-app-dependencies . We'll discuss what command line arguments are, how to access them in Swift, and how they can be used to configure in-app dependencies in our Countries demo app found at https://github.com/learn-swift-winnipeg/Countries . Monthly Code Challenge: We'll compare our solutions to this month's exercism.io Swift challenge Isogram. The good folks at exercism.io are still working on the "teams" feature so we'll need to review our swift files directly by sending them to the presenter during the meetup. You can get started at https://exercism.io . What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    1
  • Equatable Protocol & Meetup OAuth

    Red River College - Princess Campus - Room P316

    For the August Meetup we will be discussing a few fun things! 1) Lightning Talk: Synthesized Conformance to Equatable We will be discussing some of the topics described in this article from the Swift Unboxed Site (https://swiftunboxed.com/internals/synthesized-equatable-conformance) 2) Exercism.io Exercism: 'ETL'. Give it a shot! https://exercism.io/my/tracks/swift 3) OAuth: How to do the thing that all developers should know how to do?! For our Meetup Project we will need to communicate with the Meetup API, which means we will need to make authenticated requests on behalf of our Users. How could/should we do this? Whats an initial implementation look like? Come on down and find out! 4) Meetup Project: Where are we now?! To finish up we will be discussing the progress we have made in the last month on our Meetup Project. We will also discuss new features, and future direction on of the project. So if you want to be a part of making something really cool, join us! If you would like more information check out our Github page here: https://github.com/learn-swift-winnipeg/Meetup-Project What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! Steven

    4
  • Swift and Docker!

    Red River College - Princess Campus - Room P316

    Topics for this week - Introductions - Exercism Exercise: Grade School - Description link below - https://exercism.io/my/solutions/7dab5c747d6f49febb7470e43938fb5c - NOTE: you will have to login/signup via Github - The Exercism site recently changed, so check it out! - For upgrade Exercism CLI check this out: https://exercism.io/cli-v1-to-v2 - Exercism got ride of teams it appears so we have to do things differently - Paste you solution URL to the Google Sheets located here - https://docs.google.com/spreadsheets/d/1EfwaooiaQN7IVKxVioVSwaRmY_D1m-4VUwSbcQBzz8Q/edit?usp=sharing - Project Progress, - What is it? - What's new? - What's next? - Running Swift in a Docker container. - What's Docker? - Why does it matter? - What's one way to do it? What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! Steven

    5
  • Start work on our group project!

    Red River College - Princess Campus - Room P316

    NOTE: We're back in room P316 on the third floor this month. This month will be different from our previous meetups. We will be discussing plans for our group project already started at https://github.com/learn-swift-winnipeg/Meetup-Project . We will be creating the initial Requirements Docs. We will use this to deliver an MVP of this project! Laying the ground work now, so we know what to build later. We might even do some live coding?! What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    8
  • Sharing data & logic between multiple apps using App Groups and Frameworks

    Red River College - Princess Campus - Room P417

    NOTE: We're in room P417 on the fourth floor this month, not our usual room. Sharing data & logic between multiple apps using App Groups and Frameworks: Jeffrey will walk through the AppGroupsFun demo project found at https://github.com/learn-swift-winnipeg/AppGroupsFun . We will discuss sharing data between mulitple apps via App Groups, and extracting common code into a framework to access from multiple app projects within an Xcode Workspace. Monthly Code Challenge: We'll compare our solutions to this month's exercism.io Swift challenge Raindrops at http://exercism.io/exercises/swift/raindrops . I encourage everyone to join our exercism.io team and submit their own solution before the meetup: http://exercism.io/teams/learn-swift-winnipeg/ . What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    3
  • Swift for TensorFlow, Swift Generics, and monthly exercism.io challenge!

    Red River College - Princess Campus - Room P417

    NOTE: We're in room P417 on the fourth floor this month, not our usual room. Swift for TensorFlow: Steven Pritchard will give a lightning talk on the newly announced Swift for TensorFlow: https://www.tensorflow.org/community/swift Monthly Code Challenge: We'll start by comparing our solutions to this month's exercism.io Swift challenge Accumulate at http://exercism.io/exercises/swift/accumulate . I encourage everyone to join our exercism.io team and submit their own solution before the meetup: http://exercism.io/teams/learn-swift-winnipeg/ . Generics: This month's coding challenge is a great example of how Swift Generics can be used to reduce code duplication and help prevent duplication related bugs. That being said, generic programming is conceptually more difficult, harder to read, and harder to reason about than non-generic code. So let's have an informal discussion about generic programming, how it works, when it's useful, and whether or not it's worth the added cognitive load. We will probably refer to Swift Programming Language: Generics during the discussion. Feel free to check it out before the meetup if you're new to the topic: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Generics.html . What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    5
  • Internationalizing and Localizing iOS apps and monthly exercism.io challenge!

    Red River College - Princess Campus - Room P316

    We'll be talking about expanding our potential user base by making our apps accessible to non-english speakers throughout the world. This is relatively easy using the excellent tools Apple has built into Xcode and the Foundation framework. Jeffrey will show us how he internationalized and localized his latest app Prego Wheel into English, French, Arabic, and soon Chinese. Monthly Code Challenge: We'll also be comparing our solutions to this month's exercism.io Swift challenge Nucleotide Count at http://exercism.io/exercises/swift/nucleotide-count . I encourage everyone to join our exercism.io team and submit their own solution before the meetup: http://exercism.io/teams/learn-swift-winnipeg/ . Swift Basics Surely at some point we'll delve into a discussion about some core feature of Swift. We may even look something up in the Swift Programming Language online book: https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/ . What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    5
  • Persistence in iOS with UserDefaults, FileManager, Disk framework, and CoreData!

    Red River College - Princess Campus - Room P316

    The Swift Programming Language: To be determined. Is there anything specific you'd like to discuss? Let us know in the comments. Monthly Code Challenge: Next we'll compare our solutions to this month's exercism.io Swift challenge Hamming at http://exercism.io/exercises/swift/hamming . I encourage everyone to join our exercism.io team and submit their own solution before the meetup: http://exercism.io/teams/learn-swift-winnipeg/ . Presentations: Jeffrey will start things off with a follow-up to some questions/comments from the last meetup. We'll be discussing how far we can go with UserDefaults, why we should or shouldn't use UserDefaults, and two ways we can persist data to disk without UserDefaults. After that Sébastien will show us how to setup a CoreData stack using NSPersistentContainer, the power of NSFetchedResultsController for displaying real time data, and possibly a performance comparison of CoreData vs property lists. What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although Swift does run on linux so you can always try this: https://www.raywenderlich.com/122189/introduction-to-open-source-swift-on-linux • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    9
  • Swift basics, monthly exercism.io challenge, and Swift 4's Codable protocol!

    Red River College - Princess Campus - Room P316

    The Swift Programming Language: We'll start with a quick review of Protocols in the The Swift Programming Language at https://developer.apple.com/library/content/documentation/Swift/Conceptual/Swift_Programming_Language/Protocols.html . Monthly Code Challenge: Next we'll compare our solutions to this month's exercism.io Swift challenge Grains at http://exercism.io/exercises/swift/grains . I encourage everyone to join our exercism.io team and submit their own solution before the meetup: http://exercism.io/teams/learn-swift-winnipeg/ . Presentation: And finally, Jeffrey will walk us through Swift 4's Codable types which we'll use to convert our data types into external representations such as JSON and property lists. A Swift Playground with code samples, documentation, and additional resources has been added to our GitHub organization: https://github.com/learn-swift-winnipeg/CodableFun What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although you'll be able to experiment with Swift on other platforms via IBM's Swift Sandbox at https://swift.sandbox.bluemix.net/#/repl . • Install the latest version of Xcode from the Mac App Store at https://itunes.apple.com/ca/app/xcode/id497799835?mt=12 (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    7
  • Asynchronous Programming in Swift along with other interesting things!

    Red River College - Princess Campus - Room P316

    The Swift Programming Language: TBD Would you like to review something specific? Please let us know in the comments. Monthly Code Challenge: Bob Next we'll compare our solutions to the exercism.io (http://exercism.io/) Swift challenge Bob (http://exercism.io/exercises/swift/bob/readme). I encourage everyone to join our exercism.io team (http://exercism.io/teams/learn-swift-winnipeg/) and submit their own solution before the meetup. Presentation: Asynchronous Programming in Swift Jeffrey will do an overview of what asynchronous programming is, why it's useful, and demonstrate a few approaches to solving problems of various complexity. Demo project is available via our GitHub organization: https://github.com/learn-swift-winnipeg/AsyncProgrammingSwift What You'll Need (if you want to join in on any of the coding portions): • A laptop, preferably running macOS, although you'll be able to experiment with Swift on other platforms via IBM's Swift Sandbox (https://swift.sandbox.bluemix.net/#/repl). • Install the latest version of Xcode from the Mac App Store (https://itunes.apple.com/ca/app/xcode/id497799835?mt=12) (macOS only). You'll want to download this ahead of time because it's multiple GB in size. • If you don't have the above–still come and learn! See you all soon! - Jeffrey

    1