One of my New Year's resolutions is to dive deeper into #Swift and finally launch my first own app. To stay motivated during the little free time I have, I will follow #100DaysOfSwift and #100DaysOfSwiftUI starting today! https://twitter.com/twostraws/status/1091274909613989889
Completed day 1 of #100DaysOfSwift #100DaysOfSwiftUI
I didn’t expect it to happen this early, but I actually learned something new on the very first day :D
I didn’t expect it to happen this early, but I actually learned something new on the very first day :D
Completed day 2 of #100DaysOfSwift #100DaysOfSwiftUI
New things I learned today: default values in dictionaries, when and how to use Sets, automatically assigning integers to enums
New things I learned today: default values in dictionaries, when and how to use Sets, automatically assigning integers to enums
Completed day 3 of #100DaysOfSwift #100DaysOfSwiftUI
Due to my prior knowledge there was nothing new for me today apart from the expression „compound assignment operator“. Can’t wait to get to the projects, but I think I will stick to one lesson a day, just to stay consistent.
Due to my prior knowledge there was nothing new for me today apart from the expression „compound assignment operator“. Can’t wait to get to the projects, but I think I will stick to one lesson a day, just to stay consistent.
Completed day 4 of #100DaysOfSwift #100DaysOfSwiftUI
New things I learned today: „repeat-while“ loops and exiting outer loops by using labels.
New things I learned today: „repeat-while“ loops and exiting outer loops by using labels.
Completed day 5 of #100DaysOfSwift #100DaysOfSwiftUI
New things I learned today: variadic function parameters, how to write my own throwing functions, use inout parameters to change variables outside the function
New things I learned today: variadic function parameters, how to write my own throwing functions, use inout parameters to change variables outside the function
Completed day 6 of #100DaysOfSwift #100DaysOfSwiftUI
Trailing closures are very interesting. I should use them more often where appropriate.
Trailing closures are very interesting. I should use them more often where appropriate.
Completed day 7 of #100DaysOfSwift #100DaysOfSwiftUI
Learned many new things about closures like returning one from a function or how to capture external values.
Learned many new things about closures like returning one from a function or how to capture external values.
This also marks my first week with #100DaysOfSwift #100DaysOfSwiftUI
So far I really enjoy doing this regularly. But I still can’t wait to get to the projects.
So far I really enjoy doing this regularly. But I still can’t wait to get to the projects.
Completed day 8 of #100DaysOfSwift #100DaysOfSwiftUI
Few new things for me today, but here are two of my favorite questions so far! :D
Few new things for me today, but here are two of my favorite questions so far! :D
Completed day 9 of #100DaysOfSwift #100DaysOfSwiftUI
I’ve never used lazy vars but heard of them before. Some articles are also hiding deep in my Safari reading list (like many others ^^’).
Static properties are also great!
I’ve never used lazy vars but heard of them before. Some articles are also hiding deep in my Safari reading list (like many others ^^’).
Static properties are also great!
Completed day 10 of #100DaysOfSwift #100DaysOfSwiftUI
Today I learned about the difference between classes and structs, as well as the „final“ keyword and deinitializers.
Today I learned about the difference between classes and structs, as well as the „final“ keyword and deinitializers.
Completed day 11 of #100DaysOfSwift #100DaysOfSwiftUI
Today I learned all about protocols, protocol extensions and also protocol-oriented programming which is very interesting!
Today I learned all about protocols, protocol extensions and also protocol-oriented programming which is very interesting!
Completed day 12 of #100DaysOfSwift #100DaysOfSwiftUI and therefore the first chapter „Introduction to Swift“!
New things I learned today:
Failable initializers and optional try (try?)
New things I learned today:
Failable initializers and optional try (try?)
Completed day 13 of #100DaysOfSwift #100DaysOfSwiftUI which is the first consolidation day. I already learned quite a few new things, but there are many more to follow.
Completed day 15 of #100DaysOfSwift #100DaysOfSwiftUI
After reviewing the last topics of the first chapter, I now feel more than well prepared for the first project tomorrow!
After reviewing the last topics of the first chapter, I now feel more than well prepared for the first project tomorrow!
Unfortunately I have to postpone day 16. It was my grandmas birthday and I had a lot of university exercises left, which I’ve just finished.
Today I had to decide wether I should continue with #100DaysOfSwift or #100DaysOfSwiftUI. I already know quite a lot about UIKit, so I chose the former in order to consolidate my knowledge. And I’ll also learn about SpriteKit! …
SwiftUI seems very promising and I think I will like it a lot, so I will definitely check it out directly after I finished the first 100 days. Now going back to today …
Completed day 16 of #100DaysOfSwift
Eww, Storyboards!
I prefer writing code directly, but I think it’s good to also know in detail how the Storyboard and XIBs work.
However depending on what is used for how long, I will at some point follow along with code only.
Eww, Storyboards!
I prefer writing code directly, but I think it’s good to also know in detail how the Storyboard and XIBs work.
However depending on what is used for how long, I will at some point follow along with code only.
Completed day 17 of #100DaysOfSwift
If I remember correctly, I have never used viewWillDisappear before. So today was the first time.
If I remember correctly, I have never used viewWillDisappear before. So today was the first time.
Completed day 18 of #100DaysOfSwift
Finished the first project, passed the test and extended it with my own code.
Finished the first project, passed the test and extended it with my own code.
Completed day 19 of #100DaysOfSwift
Today I started the second project!
Today I started the second project!
Completed day 20 of #100DaysOfSwift
Today was about shuffling arrays and building IBActions and alerts.
Today was about shuffling arrays and building IBActions and alerts.
Completed day 22 of #100DaysOfSwift
Finished the third project and extended the first two.
Also: did you know you can duplicate a folder on macOS by drag&move, hold option key, release? That’s neat!
Finished the third project and extended the first two.
Also: did you know you can duplicate a folder on macOS by drag&move, hold option key, release? That’s neat!
Completed day 23 of #100DaysOfSwift
Today is the second consolidation day which reviews projects 1-3.
Things I would love to improve if I had enough time:
- Spacing between flags
- Make use of rounded corners and shadows
- Display additional data
Today is the second consolidation day which reviews projects 1-3.
Things I would love to improve if I had enough time:
- Spacing between flags
- Make use of rounded corners and shadows
- Display additional data
Completed day 24 of #100DaysOfSwift
Today I started project 4 which uses WKWebView to display web pages.
Today I started project 4 which uses WKWebView to display web pages.
Completed day 25 of #100DaysOfSwift
Today I learned about observers in combination with WKWebView’s "estimatedProgress" to change the value of an UIProgressView.
Today I learned about observers in combination with WKWebView’s "estimatedProgress" to change the value of an UIProgressView.
Completed day 26 of #100DaysOfSwift
Finished project 4 and implemented all the challenges:
Finished project 4 and implemented all the challenges:
Completed day 27 of #100DaysOfSwift
Today I learned about capture lists and weak, strong & unowned references. I already knew that retain cycles are a thing, but now I also know how to circumvent them!
Today I learned about capture lists and weak, strong & unowned references. I already knew that retain cycles are a thing, but now I also know how to circumvent them!
Completed day 28 of #100DaysOfSwift
Yesterday, I learned about UITextChecker and how to manually insert rows in a table view without needing to reload the whole view.
Yesterday, I learned about UITextChecker and how to manually insert rows in a table view without needing to reload the whole view.
Completed day 29 of #100DaysOfSwift
Finished project 5 which was pretty fun! I also solved all of the challenges.
Finished project 5 which was pretty fun! I also solved all of the challenges.
Completed day 30 of #100DaysOfSwift
Nothing new for me today, but it’s still good to revisit Auto Layout and Visual Format language.
Nothing new for me today, but it’s still good to revisit Auto Layout and Visual Format language.
Completed day 31 of #100DaysOfSwift
Finished project 6 and completed the challenges.
Today was about Auto Layout anchors, which I played a lot with in the last years.
Finished project 6 and completed the challenges.
Today was about Auto Layout anchors, which I played a lot with in the last years.
Completed day 32 of #100DaysOfSwift
This is the consolidation day for projects 4-6 where I had to create an app from scratch again. I already like how I can code most of this without thinking too much how to approach it.
This is the consolidation day for projects 4-6 where I had to create an app from scratch again. I already like how I can code most of this without thinking too much how to approach it.
Completed day 33 of #100DaysOfSwift
Project 7 starts with UITabBarController, Data and Codable.
Project 7 starts with UITabBarController, Data and Codable.
Completed day 34 of #100DaysOfSwift
Today we injecting HTML into a web view which is also something I’ve done before. Nevertheless it was good to revisit ist.
Today we injecting HTML into a web view which is also something I’ve done before. Nevertheless it was good to revisit ist.
Completed day 35 of #100DaysOfSwift
Finished project 7 and its challenges.
These projects also provide a great foundation to add some own improvements like in this case using SF Symbols, an active filter symbol and text @twostraws
Finished project 7 and its challenges.
These projects also provide a great foundation to add some own improvements like in this case using SF Symbols, an active filter symbol and text @twostraws
Completed day 36 of #100DaysOfSwift
Creating the UI in code can be very tedious, but I still prefer it over IB. Also there are some ways to tidy it up by quite some bit.
Can’t wait to see how I’ll like SwiftUI later this year!
Creating the UI in code can be very tedious, but I still prefer it over IB. Also there are some ways to tidy it up by quite some bit.
Can’t wait to see how I’ll like SwiftUI later this year!
Completed day 37 of #100DaysOfSwift
Now we have a working iPad game! Today was all about separating and joining strings, adding targets to buttons and hiding views.
Now we have a working iPad game! Today was all about separating and joining strings, adding targets to buttons and hiding views.
Completed day 38 of #100DaysOfSwift
Finished project 8 and completed the challenges, however I later added lives and improved the design (both of which are heavily inspired by https://twitter.com/surakamy/status/1127122818766987264)
Finished project 8 and completed the challenges, however I later added lives and improved the design (both of which are heavily inspired by https://twitter.com/surakamy/status/1127122818766987264)
Completed day 39 of #100DaysOfSwift
Today I learned about Grand Central Dispatch, quality of service queues and performSelector()
Today I learned about Grand Central Dispatch, quality of service queues and performSelector()
Completed day 40 of #100DaysOfSwift
Not quite as satisfied with how the code looks. I definitely need to dive deeper into GCD & how to structure it. I found it’s easier to fall into calling UI code in the background w/ performSelector. I need to go back to this challenge later
Not quite as satisfied with how the code looks. I definitely need to dive deeper into GCD & how to structure it. I found it’s easier to fall into calling UI code in the background w/ performSelector. I need to go back to this challenge later
Progress day 41 of #100DaysOfSwift
I will finish the game this weekend. I didn’t like to use just one label because I wanted to have a persistent underline underneath each single letter.
To Do: draw hangman images, alerts, score, lives and update the buttons when pressed.
I will finish the game this weekend. I didn’t like to use just one label because I wanted to have a persistent underline underneath each single letter.
To Do: draw hangman images, alerts, score, lives and update the buttons when pressed.
Completed day 42 of #100DaysOfSwift
Start of project 10 and we’re finally using UICollectionViews!
Start of project 10 and we’re finally using UICollectionViews!
Completed day 43 of #100DaysOfSwift
Today was about UIImagePickerController and NSObject, both of which I already knew before.
Today was about UIImagePickerController and NSObject, both of which I already knew before.
Completed day 44 of #100DaysOfSwift
Finished project 10 and I’m extremely happy with how it turned out. I followed @twostraws version + the challenges, but then made this my own.
There’s still a lot of room for improvement so I will come back to it at some point in the future!
Finished project 10 and I’m extremely happy with how it turned out. I followed @twostraws version + the challenges, but then made this my own.
There’s still a lot of room for improvement so I will come back to it at some point in the future!
Completed day 45 of #100DaysOfSwift
Today I learned about SKSpriteNode and SKPhysicsBody, both of which are part of SpriteKit. This is new territory for me, so it’s very interesting!
Today I learned about SKSpriteNode and SKPhysicsBody, both of which are part of SpriteKit. This is new territory for me, so it’s very interesting!
Completed day 46 of #100DaysOfSwift
Today I learned about SKAction, SKPhysicsContactDelegate and SKLabelNode.
Today I learned about SKAction, SKPhysicsContactDelegate and SKLabelNode.
Completed day 47 of #100DaysOfSwift
Finished project 11 and learned about SKEmitterNode!
Finished project 11 and learned about SKEmitterNode!
Completed day 48 of #100DaysOfSwift
Today I learned about UserDefaults, NSCoding and finally “required init?(coder: NSCoder)”
Today I learned about UserDefaults, NSCoding and finally “required init?(coder: NSCoder)”
Completed day 50! of #100DaysOfSwift
I completed all challenges and reached another milestone!
I’m getting used to saving data with UserDefaults and Codable, calling code in a background thread and using the ImagePicker :)
I completed all challenges and reached another milestone!
I’m getting used to saving data with UserDefaults and Codable, calling code in a background thread and using the ImagePicker :)
50% Now that I’m halfway through, it’s time for a small recap! #100DaysOfSwift
I really enjoy all the different projects. Project 10 was my favourite so far, because I found a real use case for it. I already feel pretty safe using all the new things I learned.
I really enjoy all the different projects. Project 10 was my favourite so far, because I found a real use case for it. I already feel pretty safe using all the new things I learned.
Completed day 51 of #100DaysOfSwift
Happy to continue with the 2nd half! :)
Today I watched two of Paul’s conference talks which is something I should do regularly (I also need to attend one some day!)
Happy to continue with the 2nd half! :)
Today I watched two of Paul’s conference talks which is something I should do regularly (I also need to attend one some day!)
Btw: Yesterday was the 51st day of the year and also the day of the Animal Crossing: New Horizons #NintendoDirect. So the title of yesterdays #100DaysOfSwift was very fitting! What a coincidence @twostraws :D
Completed day 52 of #100DaysOfSwift
Today I started project 13. Nothing new besides an outlet for an UISlider.
Today I started project 13. Nothing new besides an outlet for an UISlider.
Completed day 53 of #100DaysOfSwift
Today I learned about CIContext, CIFilter and more. This was definitely a more difficult day, so I’ll probably need to revisit it again when I want to work with CoreImage.
Today I learned about CIContext, CIFilter and more. This was definitely a more difficult day, so I’ll probably need to revisit it again when I want to work with CoreImage.
Completed day 54 of #100DaysOfSwift
Finished project 13 and the challenges!
Finished project 13 and the challenges!
Completed day 55 of #100DaysOfSwift
Today I was very confused because yesterday I forgot to tweet about my progress.
I started project 14 and learned about SKCropNode and SKTexture.
Today I was very confused because yesterday I forgot to tweet about my progress.
I started project 14 and learned about SKCropNode and SKTexture.
Completed day 56 of #100DaysOfSwift
Creating SK Particles is easy. Creating good ones is hard and mine are ok but could be way better.
! You might want to adjust the volume due to the sound effects and I cut the “game over” voice over from the twitter version, sry ^^'
Creating SK Particles is easy. Creating good ones is hard and mine are ok but could be way better.
! You might want to adjust the volume due to the sound effects and I cut the “game over” voice over from the twitter version, sry ^^'
Completed day 57 of #100DaysOfSwift
Today was about animation: UIView.animate, CGAffineTransform and alpha.
Today was about animation: UIView.animate, CGAffineTransform and alpha.
Completed day 58 of #100DaysOfSwift
Finished project 15 and the challenges!
Finished project 15 and the challenges!
Completed day 59 of #100DaysOfSwift
We should create an own app from scratch once again and implement these features.
I also added a way to sort the countries and will extend the app even further tomorrow!
We should create an own app from scratch once again and implement these features.
I also added a way to sort the countries and will extend the app even further tomorrow!
Completed day 60 of #100DaysOfSwift
Today I learned about MKMapView, MKAnnotation and CLLocationCoordinate2D.
I really enjoy working with MapKit and will definitely play around with it in the future!
Today I learned about MKMapView, MKAnnotation and CLLocationCoordinate2D.
I really enjoy working with MapKit and will definitely play around with it in the future!
Completed day 61 of #100DaysOfSwift
Today I finished project 16. I used a SFSafariViewController instead of a Web View.
Today I finished project 16. I used a SFSafariViewController instead of a Web View.
Completed day 62 of #100DaysOfSwift
Today I learned about pixel-perfect collision detection, Timer and linearDamping.
Today I learned about pixel-perfect collision detection, Timer and linearDamping.
Completed day 63 of #100DaysOfSwift
Finished project 17 and changed the textures!
@SpaceX Starship has to maneuver through space debris consisting of lost @Tesla roadsters, dragons, #JamesWebbSpaceTelescopes and some low orbit space stations from a certain game! @elonmusk
Finished project 17 and changed the textures!
@SpaceX Starship has to maneuver through space debris consisting of lost @Tesla roadsters, dragons, #JamesWebbSpaceTelescopes and some low orbit space stations from a certain game! @elonmusk
Completed day 64 of #100DaysOfSwift
Today I learned about assert(), breakpoints and view debugging!
Today I learned about assert(), breakpoints and view debugging!
Completed day 65 of #100DaysOfSwift
3 challenges that could be solved quickly!
3 challenges that could be solved quickly!
Long time no see.
After day 65 I focused on studying for exams. Coming back to the #100DaysOfSwift I then wanted to put a lot more effort in day 66 but in the end I had lost all motivation.
After day 65 I focused on studying for exams. Coming back to the #100DaysOfSwift I then wanted to put a lot more effort in day 66 but in the end I had lost all motivation.
This was until the end of march when Nintendo hosted a new Direct mini where we didn’t get any Zelda game. So I combined this with day 66 and created my own Zelda Mobile Game. So…
Completed day 66 of #100DaysOfSwift
Here’s a video where I showcase my Zelda Mobile Game. I’m very happy with how it turned out:
Here’s a video where I showcase my Zelda Mobile Game. I’m very happy with how it turned out:
If you want to learn more about it, make sure to check out this thread (written in German) #100DaysOfSwift: https://twitter.com/nmanngamer/status/1246847082356449282
I will continue by completing at least one project a day. This might be content up to 3 days for one, but I should be able to handle it. My new goal is to finish before / at day 115, so I can complete the #100DaysOfSwiftUI on day 200.