Laravel is prepared out of the box to work with Bootstrap 3.0. It is not however a prerequisite, and Boostrap can be easily replaced by Foundation. It is this process I would like to explain in this blog.
This famous sentence from the Apollo XIII astronauts came to my mind this morning when reflecting about my experience on learning iOS 9 with Rob Percival. I have to be honest: I am really disappointed in this course. The fact that Rob reuses old videos is starting to make me a bit exasperated. Today's content was related to maps, adding messages and pins, and using the user's geolocation. After the first minutes of this tutorial, the code in my ViewController was looking like that:
It was one of these days...I was thinking at one point into the tutorial I wouldn't be able to report anything about the Tic Tac Toe app started yesterday, except failure and an unexplained crash. I was ready to move on when I eventually found a cryptic solution on the web. It was however useless for solving the crash issue at hand because it didn't give any satisfactory explanation. I just did what I thought would be right and...it worked. It was just probably beginner's luck, but this experience was really frustrating for the mind.
I was kind of annoyed today with Rob's video on building a Tic Tac Toe app. It happened already before, but not to this extent. To gain some time when recording his videos, Rob reused several shot from iOS 8.3. It's legitimate except when the content is somehow obsolete. It makes things more complicated to follow, and it is a total waste of time. It happened right at the beginning of a video dedicated to this child game that almost everybody knows. To refresh your memory, this game is (also known as Noughts and crosses or Xs and Os) is a paper-and-pencil game for two players, X and O, who take turns marking the spaces in a 3×3 grid. The player who succeeds in placing three of their marks in a horizontal, vertical, or diagonal row wins the game.(Wikipedia)
To understand how Rob is able to take particular data from the weather-forecast website, we have to look at strings manipulation. The class String or NSString (explained soon) offers several possibilities for examining the contents of strings, finding characters or substrings within a string, changing case, and other tasks. The simplest manipulation is of course to add or, in in its technical expression, concatenate a string to another:
Downloading content from the web can be accomplished in two different ways: by showing the website directly into the app as a regular browser would do, or by downloading only its content in order, for example, to extract some strings or numbers. The second option seems better considered the time it may take to load a complex website, and the fact that an Internet connection may not be available at all times. By simply scraping the content, most of the app would be usable offline.
I realized eventually today my first really functional app, a To Do List. It may seem a bit lame - they are thousand of To Do List apps out there - but it was a very nice respite after yesterday's difficulties. It summarized almost everything I have learned so far. The Table View was as easy as it was difficult yesterday, and it made be realized it may be worth to create a kind of personal library with all these boiler plate pieces of code to retrieve them quickly.
I must have had a bad night because I had a hard time understanding the today's subject: Table View. A table view is very common on iOS devices, it displays a single column list of multiple rows which the user can scroll. This is easy enough, but things went very confusing for me as soon as the coding in the View Controller started.
I spent quite a lot of time today on auto layout. It is a great Xcode feature that makes the layout appears as wanted, whatever the screen size of the iPhone or iPad is. It may be not so obvious the first time you have a try at it, but as soon as you have the hang of it, creating a layout is like a construction game. I will try explaining the process as I have understood it.
How many fingers do you think I am holding up ? No, I am not going back to childhood, but it was what was actually hidden behind the title "The Guessing Game". I was a bit disappointed, I was hoping for more, but building this app shows me something interesting: how to generate a random number in Swift.
I am now at the start of section four "Swift 2 Deep Dive (Using Playgrounds)". In his introductory lecture, Rob asks his students to think already to an app they are going to make:
It may be one that you want to make for yourself, one that might generates some revenue, one developed for a family friend, a business or a charity, or just for a little bit of fun. It's always great to have a project in mind you can work toward. I love that. It's kind of provocative when you think you have only a few tricks in your bag, but so stimulating. You're not learning for itself, but for creating something on your own. I am not yet sure of what kind of app I would like to develop. Any suggestion would be welcomed.
This is only the second day, and I had already my first frustration. Nothing really bad actually, but who likes to receive one of these nasty messages: *** Terminating app due to uncaught exception ''NSUnknownKeyException'', reason: ''[ setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key buttonPress" What in the world does it mean? The consequence of this exception was obvious though: the app refused to launch.
Beginnings are always exciting; nothing is written in stone, everything seems possible. Remember your first day of school, on a new job. You may be apprehensive of the unknown, but mostly you must feel exhilarated of the coming opportunities. It is at least how I feel on this first day of learning Swift 2 in 42 days.
Here I am, with this maybe strange idea to chronicle a journey through the mind to learn a new coding language. To be totally candid, I have already some knowledge of it, but I gave up in the middle of the ride, not because of a lack of commitment, but because the road was kind of rocky.