Monday, December 26, 2016

Project 13: Circular Image

I just got done talking about how cool XCode and Apple is.

But now I will say how stupid hard it is to do such simple things like setting a border-radius of 50%



profileImageView.layer.frame.size.width / 2

That was too much when you could've just typed 50% or something.

Either this is really ridiculous of Apple or Sam just doesn't really know what he's doing.

Anyways, there's the finished project.



Project 12: Sticky Header Jumper

This project really showed me how cool developing Apple apps are.

The defaults that it comes with are just really amazing.

The headers are sticky by default. And there are a lot of really cool things you can do by just using a particular component.

This project also showed me how bad of a coder Sam actually is.



That super long switch statement could be reduced to this:






Other than the laughable code quality, the project was really fun to do.



This UI looks really nice and high quality. It's hard to put out bad looking apps because XCode restricts what you can do (and for good reason).

Project 11: Add Item

Once again another continuation of the previous project.

This time we are able to add new items to the project.

I'm starting to get the hang of things pretty well. Although Sam's coding style irks me in many ways like the overusage of Markers.




Project 10: Rearrange and Delete items

This was an actual continuation of the previous project.



Now we have functionality to edit and delete.


Instead of going through and actually learning how to do this. Sam simply has us use the prewritten Apple code, delete here, and do some "magic", then voila. It's done.

Project 9: Pull To Refresh

Man these projects are really a drag to get through.

We redid the UI from the previous project but this time we are to implement a "Pull to Refresh" functionality and replace the list with new items.



Sam honestly does a terrible job at explaining what he's doing when going through these projects.

"You do this, then do that, then do this"

Why Sam Why?

Can you explain better at why you're doing what you're doing?

Project 8: TableView

This project is hardly a project because all we did was create a list view.

None of the buttons work.




Here's a quick glimpse of the code.




This project sucked. Hope I don't find too many of these.

Saturday, December 10, 2016

Project 7: Add Photo

This project begins our knowledge of knowing how to access the camera.

Given that the camera is used in so many projects, it's a no-brainer that launching the camera is super easy to do.

Add you have to do is add a UIBarButtonItem and assign that to a Camera.



This little icon that will be placed in the right part of the navigation will launch the camera.

I like how XCode limits you on the customization of buttons like these. It helps developers stick with intuitive icons that have intuitive functionalities.

On the other hand, it does limit creativity.


Clicking that button gives us the Camera Roll




And selecting a photo pastes it in the View.




It's pretty nice knowing how to do something simple yet effective like this.


However if I were asked to do this without any documentation help, I would seriously have no idea...





To know all these names, I'd seriously have to code in Swift for quite some time every day.

Project 6: Passing Data

This project was simply getting contents of one view over to another view in the Storyboard.





Now I do find it a little fascinating how this gets done in XCode.

The transitions between Views are apparently called "segue"s.





This block of text was pretty much the main point of it.

I still get a little frustrated about how Sam glosses over a lot of things. For example, when he's debugging something, he just tries different things until they work. The problem is that the viewer has no idea why it worked. It's important to know why things are a certain way. But I digress.


I'll take it for what it is.

Monday, December 5, 2016

Project 5: Get Date And Time

I think the most valuable thing to learn as an iOS developer is knowing how to find the right NS-variable when needed.


However Sam honestly does a pretty bad job about teaching you how to search.

(His words)
"Let's say you don't know how to do 'Date and Time', you go the iOS developer library and type 'NSDate'"

Well Sam... how should one even know how to type "NSDate"?


Anyways this project was pretty easy.

You just take the date from NSDate(), format it using NSDateFormatter, and update the label.

I'm really curious as to why this project was placed at this point. I definitely think it should've been before the Tip Calculator.





I feel like this project had the least amount of code.




Well... onto the next one!

Project 4: Tip Calculator

This project took way longer than expected.

Sam begins to introduce the concept of a model.

Rather than keeping all the logic data in the view layer, he starts to put data on a Calculator "Model".


This project was when it was clear that Sam is actually a novice programmer teaching other novices how to code.

His debugging process as well as how we names his variables and goes about his coding screams "noob" (not to be mean about it though).

In this scenario, instead of naming his model "Calculator". He named it "Model".

Why would you name your model, "Model"?



Anyways not gonna get too hung up on it.

This whole Swift development seems a lot more feasible now.


However it is difficult to know all these different Swift elements and triggers.
Ex: UISlide, resignFirstResponder().


But it's nothing that I won't pick up as long as I keep doing this.


It is really nice making a useful app like the TipCalculator.




I really do wonder what it's like to work in a Production level iOS project.


At work I'm currently working on a React Native app which keeps things pretty clean.