UI building in iOS development has a brand new tool: SwiftUI. The original SwiftUI tutorial and a more recently updated tutorial are excellent resources for you to get more familiar with SwiftUI.
If you decide to use SwiftUI, this website
provides a good cheatsheet.
If you decide to use Storyboards (the old way of UI building), there are a lot
more tutorials on it, such as
this one.
The WWDC videos are also useful to
enrich your knowledge on general Swift or iOS programming.
If you are into Vim, XVim is a plugin
that provides Vim keybindings for Xcode. It has mostly worked well enough.
It is highly recommended for you to get a MacBook. Xcode can only run in
macOS, and the Xcode build toolchain is the only way to compile iOS
applications. As a last resort, the school has a few Mac minis for loan. But the numbers are limited so if demand exceeds supply, we will assign by ballot.
Otherwise, you can always:
buy a MacBook, return after 2 weeks, rinse and repeat (although we can't
guarantee that this always works)
buy a second-hand model from marketplaces like Carousell
resourcefully acquire a macOS image and install it on a virtual machine or
non-standard hardware. Note that we do not condone illegal practices.
Read all pages in the "About CS3217" section. (Including this one!)
Start early. In the past, many people have regretted not starting early.
Starting earlier allows you to properly plan the design of your software. By
planning well, you can avoid instances where you get wrapped up in bad design
decisions, making you slow down to refactor some pieces.
Always read the entire problem set before starting to avoid any surprises!
Do not hesitate to ask the teaching staff for clarifications or general tips.
Having said that, if you ask about software engineering practices without any
of your thoughts, you will more likely than not get hit with a "what do you
think?" Software engineering depends on two-way communication, and a lot of it
is subjective. If you share your thoughts first, we can help you better!
Discuss with your peers! CS3217 is full of bright students, and bouncing
design ideas around is the best way to make sure your software design is
appropriate for the task. Of course, this also applies to general software
engineering as well. Communication is key!
Read Hacker News often. That is probably the
best advice the author has personally received on the subject of CS career.