This week was spent brainstorming rough design ideas and layouts. Using the research from last week and the sketches from this week Tony and I decided upon the rough layout for the iPlayer application.
For my independent learning this week I completed chapters 1 - 4 of the Apress text book and watched the first three lectures from the stanford tutorials. The apress book focused mainly on the interface elements of the iOS SDK and how you can use them to work together. The Stanford lectures where more technical and focussed more heavily on the objective-c programming language. Together both resources where a great introduction to iOS development.
The first assignment for the stanford lectures was to create a basic calculator using a stack as the calculator brain. The course provides a detailed walkthrough of how to complete it and I found it to be a great introduction.
Images of calculator app.
This week I began research for the iPlayer design and started looking for resources for the independent learning portion of the subject.
For the iPlayer design I looked mainly at existing video player and news apps in the app store. I was looking for any design features that make an app standout and feel unique, along with ways that other app designers have handled some of the problems I will encounter when developing the iPlayer. As the iPlayer is the first app I will be developing I can’t be sure what these problems will be, though the main design issues I am planning for are:
App Research Review
This app stood out for the way they display the feature video. I think most people would only watch a couple of videos at a time when they are using an app on their phone so having the top stories featured prominently helps people to find the most interesting content. I also like the layout of their ‘navigation page’ the coloured links stand out from the rest of the monotone design.
Another standout was the BBC iPlayer. They opted for side scrolling instead of vertical scrolling and I think it works really well with their layout. They have either one big video or two small video images per view, and it changes as you scroll through their content. I like the design but think having both a top and bottom bars takes up a lot of valuable screen real estate. Also th
I have just finished the CS106A - Programming Methodology course offered online by Stanford, it was awesome and I learned a lot, but completing it on my own was fairly lonely. As the new semester has just started at Stanford it would be an good time to start on another of their computer science classes, and this time around I’m trying to find people to do it with me.
The class I’m going to be following along with CS106B - Programming Abstractions, the website is here if you want more information. Basically you can access all of the assignments and handouts and the lectures are available on itunes.
As far as the study group goes we could get a small forum going or / study groups etc. basically motivation to keep each other going and ask questions. If you interested leave a comment, email me or contact me on twitter and we can get started :)
There are plenty of other guides to getting started with vim but I find most of them to be a bit long or overly complex. If your a beginner developer like me you don’t want to waste hours trying to get vim setup and looking nice.
This guide aims to get vim setup quickly and then point you to some quick tutorials so you can familiarise yourself with the shortcuts and start navigating around your code. Once you are comfortable with the commands you can learn all about the different customisations available.
Step 1: Install
Although vim comes standard on most unix systems I would recommend downloading a GUI version to begin with. I recommend macvim which you can get here: http://code.google.com/p/macvim/
Step 2: Installing Macvim
Install the program as normal and move the script to your PATH (the script lets you open macvim from a terminal window, details below if you need help with that.)
Heres a link to learn more about what your PATH is and what it does : What is my PATH?
If you are unsure what your ‘path’ is, simply type ‘echo $PATH’ into a terminal. It should return something like this: ”/usr/bin:/bin:/usr/sbin:/sbin:/usr/local/bin:/usr/X11/bin”
Next type ‘cd /usr/bin’ into your terminal followed by ‘open .’
You can then simply drag the script file into the folder you just opened (you might need to enter you system password depending on your user privileges).
Step 3: Get started
Macvim doesn’t look too good out of the box but it is easy to make it look great and people share their customisations frequently.
Now you have vim installed and working, go through a few tutorials to get familiar with how it works.
1. Type ‘vimtutor’ into terminal and work through its excellent tutorial.
2. After you’ve completed that tutorial I HIGHLY recommend the ‘smash into vim’ series from Peepcode. It will get you well on your way to being an expert in vim and provides great insights on how to customise vim to your own tastes.
For those that don’t know Pinspire is a Samwer brothers clone of the exploding Pinterest website.
Today I logged into Pinterest to be met by a strange request from someone asking for my permission to repin a picture to Pinspire.
A quick look around and you can find hundreds of comments exactly like this one, all from accounts with no activity on the Pinterest site apart from comments like these.
Obviously scummy tactics from a crappy clone…
Really great info graphic for App Developers
[Source: iPhone App Design]
Binary Log: One month on the iOS App Store -
This is a great honest post about their experience on releasing an app on the app store. They provide actual numbers so its a great place to compare your results against for any project.
We released our first iPhone app early in December. It’s called Bike Maps and it lets you look up Google bicycle directions with a fast, native interface. We struggled to find any sales information for iOS apps before we got started. Inspired by Patrick McKenzie’s open business…
Since I started setting myself goals it’s been much easier to keep track of how I’m progressing and it’s definitely a great form of motivation that gives you something to aim for. When I first started teaching myself to code it was: complete this tutorial by this date or read this book by this date. Once I realised that I learn more by working on projects, it has turned into get this (small) project done in 2 weeks etc…
Inspired by Matt Might’s post I decided to come up with 12 monthly goals / resolutions for myself and other beginner developers.
More details about each goal below the list:
Start a blog
Everyone, no matter where they are in their career, or how much they know has something to share. A blog also helps you to get yourself out there and meet people with similar interests which is HUGE for people trying to learn to code. Starting a blog is easy to do but posting regularly is much more difficult. Apparently getting into a routine and posting regularly is the best way to make sure you keep at it.
Start a new project
Tackling projects are by far the best way to learn something. Start with something you think is small and you begin to realise how much thought goes into building something of value. You will stumble into problems you had no idea about and learn about all kinds of ways to deal with them.
Release a project
Once you’ve started a project, finishing it is super important. By setting a goal to release it to the public you’ll force yourself to build it to the best you can. Dealing with a release will also open up a whole range of new things for you to learn about, from servers / hosting to marketing.
Read a book
It doesn’t necessarily have to be related to what your learning about, you will always gain something from reading.
Go to a meetup in your area
Head to meetup.com or google for some groups / events in your area. They’re an awesome way to meet people who are eager to help beginners and getting involved in the community is one of the best ways to make sure you stick to something.
Participate in a online course
Theres ALOT of resources online, but not enough people take advantage of the courses offered by Stanford, MIT. The Stanford introduction to programming course (cs106) is really good, the lectures are fun and you can follow along on the class website with actual students.
Having a good sense of design is important for all developers whether or not you plan to use it a lot. Like anything the only way to get better at it is practice. Just think how useful it would be to make the projects your going to release look awesome.
Learn git or a form of source control.
Git is probably the most popular form of source control right now and is a MUST for anyone who is learning to code. Not only is it the best way to keep your projects organised, and backed up but it’s a skill that most employers look for as well and is pretty much essential if you want to start contributing to open source projects.
Write tests for your project
I don’t do enough of this so I can’t comment, but tests are vital if you want to write stable code that works. If your starting out like me this is a habit you want to get into from the start.
Complete a tutorial
Once you’ve finished a couple of small projects, go back to that tutorial you didn’t quite understand and you’ll find out how much you’ve learnt. You’ll also learn a lot from being able to finish it now :)
Watch online videos / listen to podcasts
This is a nice easy resolution to keep but can be hugely beneficial, there are hundreds of great resources out there for learning about coding / development / startups etc.
My favourites. This week in startups, railscasts, This week in web design, Mixergy, Stuff you missed in history class
Try a new editor
Trying new things is always good, and your work setup is something you use everyday. Make sure its perfect by trying new things all the time.
robot_zombie (reddit) has an put together a really nice list of online programming sites.
Here’s the link:
And here’s the list as of (4/1/2012)
Interactive DB Tutorials
Interactive Editor Tutorial
Video Lesson Sites