[HN Gopher] CS193p: Developing Apps for iOS
___________________________________________________________________
CS193p: Developing Apps for iOS
Author : rangoon626
Score : 521 points
Date : 2021-02-10 16:14 UTC (6 hours ago)
(HTM) web link (cs193p.sites.stanford.edu)
(TXT) w3m dump (cs193p.sites.stanford.edu)
| sylens wrote:
| Has anyone dipped their toe into this course at all? I wrote a
| very, very simple Android app several years back and have been
| intrigued by iOS development since the introduction of SwiftUI,
| but I'm not sure if there is material I should be familiar with
| before attempting this
| pvg wrote:
| The pre-reqs are roughly 'you know a programming language and
| have access to a Mac'.
| sylens wrote:
| Cool, thanks.
| elliekelly wrote:
| Since this is posted here I'll ask a question that has been
| bugging me for the last year: Who does the captions on these
| YouTube videos? Is it automated? I ask because every CS193p video
| starts with the same opening scene/music and the caption
| describing the music is different on _every single one_. Is this
| an auto-caption algorithm just getting it wrong? Or is there a
| person having fun behind the scenes waiting for someone like me
| to notice and spend an irrational amount of time wondering what
| happened? I feel like it has to be a person, right? YouTube 's
| captioning wouldn't give 12 different results.
|
| Edit- For anyone curious, here's how the music is described in
| the captions at the beginning of each lecture:
|
| 1. regal music
|
| 2. mellow ambient music
|
| 3. light music
|
| 4. gentle music
|
| 5. air whooshing
|
| 6. gentle music (turns out there is _one_ repeat)
|
| 7. peaceful music
|
| 8. [no description]
|
| 9. ethereal music
|
| 10. celestial music
|
| 11. serene music
|
| 12. dramatic music
| blintz wrote:
| Stanford hires students to transcribe all classes that are also
| available through SCPD. My suspicion is that some bored student
| out there is having some fun.
| jacurtis wrote:
| YouTube automatically transcribes captions for its videos. So
| that is why they are so funny sometimes.
|
| As a YT creator, it is possible to upload your own captions if
| you have any transcribed, which will then be used in place of
| the automatic ones. But 99.9% of YT videos are using automatic
| captions.
|
| Edit: Ok, I started watching the first video in this series and
| these are manually uploaded captions. So Stanford got the
| videos transcribed and manually uploaded the captions to
| Youtube. I wonder if various students did the captioning. So
| each student described the music differently. I laughed because
| the first video describes the music as "Regal Music".
| reaperducer wrote:
| _I wonder if various students did the captioning_
|
| It's possible. But there are plenty of companies that do
| subtitle transcription pretty cheaply.
|
| Local TV newscasts used to pipe the scripts from their
| TelePrompTers into the closed captioning encoder, but that
| wasn't good enough when the law changed in the late 90's
| because then there wasn't any text for interviews or weather
| segments.
|
| Now you can hire a company like Denver Caption that will have
| someone dial into a special phone line at the TV station and
| transcribe the content in real time, sending it directly back
| to the station's encoder.
|
| This is why when more than one person is talking, you can see
| in the text how the person captioning gets overloaded. Or
| they might use the wrong form of a word or phrase that would
| be easy to pick if someone was watching video, but easy to
| get wrong if they're only listening to audio over a phone
| line.
| LolWolf wrote:
| Oh, these are (mostly?) manual (often done by students working
| with SCPD, if I recall correctly). Any student can sign up and
| record for a class after some basic training, which I think can
| also include CC'ing some parts of it.
|
| It is definitely someone just having a bit of fun :)
| abawany wrote:
| I think you are right - people sometimes have too much fun
| with subtitles: videos from
| https://www.youtube.com/technologyconnections typically
| subtitle the jazz at the end of the videos with a relevant
| adjective (e.g. 'cool jazz' or something for a video on HVAC
| operations.)
| notRobot wrote:
| I know for a fact that Alec either transcribes those videos
| himself (not hard to do from a script he already writes for
| himself), or gets it done by someone else before uploading
| the video.
|
| I'm any case, they're always uploaded at the same time as
| the main video.
|
| Also, YouTube recently removed the ability for individual
| users to contribute to captions of creators. There was a
| thread on HN about it.
| reaperducer wrote:
| _people sometimes have too much fun with subtitles_
|
| If you watch WKRP In Cincinnati on MeTV, the subtitled
| lyrics for the closing theme are different every time.
| unculture wrote:
| I have a feeling that there is a chance that this comment has
| made some anonymous subtitle transcriber with a sense of humour
| very happy.
| izacus wrote:
| The YT automatic captions are marked as such and are usually
| easily distinguishable because the subtitles appear word-by-
| word instead of whole lines at once.
|
| My guess is that those are manual.
| [deleted]
| mikepurvis wrote:
| My partner worked for a bit as a transcriber on Rev, which I
| believe is the source for a bunch of these-- they have a
| turnkey option for "caption Youtube video X":
| https://www.rev.com/
| pokx wrote:
| Given the precision of things like ponctuation, and certain
| words like ViewModel being correclty spelled (instead of "view
| model" for example), those captions are probably manually
| edited.
| ihuman wrote:
| The course's videos have options for both "English" and
| "English (auto-generated)" captions. The non-generated one is
| uploaded by whoever uploaded the video.
| mrweasel wrote:
| Does anyone know of a good course to get started on AppleTV
| development?
|
| I've tried getting started with a small hobby project multiple
| times, and I get something working, but the documentation I can
| find doesn't really help you get into more advanced stuff.
| ru552 wrote:
| The course linked here is a good one. It teaches SwiftUI and
| Swift which are what you will use to develop on AppleTV.
| randomifcpfan wrote:
| TvOS is 90% the same as iOS, and has almost no viable
| application market besides video streaming apps. Unfortunately
| that means there are almost no docs or classes on programming
| it. The occasional WWDC presentation is all there is.
| fuadnafiz98 wrote:
| I don't have a mac, why is it to be so hard for someone like me
| to learn ios development :(
| themacguffinman wrote:
| Definitely not suggesting that it's ideal, but if iOS dev is
| important to you have you considered setting up a Hackintosh or
| a macOS VM [1]? Typically macOS Hackintoshes/VMs have annoying
| issues or requirements that make it unstable for full-time
| desktop use, but if you're just trying to use the simulator and
| the Xcode build tools, maybe it's enough?
|
| [1] For example (I am not associated with the website):
| https://www.soupbowl.io/2020/04/macos-in-virtualbox/
| [deleted]
| slipper1 wrote:
| This is by design to gatekeep only rich people. For the rich,
| by the rich, of the rich.
| ru552 wrote:
| This is a pretty dramatic take. You can get a brand new mac
| mini with an M1 for <$1000. The price drops significantly
| (<$500) if you get a refurb or pick up a used one on ebay.
| $500 may still be a lot of money, but it's not "rich" money.
| ornornor wrote:
| It is quite a hassle indeed. As far as I know, you need:
|
| - a Mac (with a recent enough version of Mac OS)
|
| - an iPhone with a recent enough iOS
|
| - a 99$/year (iirc) Apple developer account
|
| These things might be a given for people in SV but it's quite a
| big upfront cost for most people outside of HCOL areas.
|
| Unless I'm mistaken and you can do without a Mac? But I seem to
| recall you need to use iCode (or whatever apple's IDE is called
| ;)
| ru552 wrote:
| The GP's question was about learning IOS dev. For that, you
| only need the Mac. There is a simulator built in to Mac dev
| tools so you don't have to have an iphone. The developer
| account also isn't needed to learn. You only need the
| $99/year account to publish apps to the app store.
| otachack wrote:
| I think you also need the dev account if you want to run
| apps on a physical phone, but it's been awhile since I
| tried.
| jeffreyrogers wrote:
| You can just use your Apple ID (I think that's what it's
| called), which is free. Some of the features are only
| available if you have the $99/year account.
| steve_taylor wrote:
| You can side-load builds onto your iPhone/iPad and they
| expire after a while (maybe 30 days).
| divtiwari wrote:
| Is there an Android equivalent of such a course? CS193A doesn't
| have official videos and resources like this one. Any other
| university course?
| dont__panic wrote:
| Also interested in this. I've explored a few Android courses,
| but most online content I've tried so far hasn't really given
| me the "college lecture" vibe that I'm looking for.
| IG_Semmelweiss wrote:
| Im also interested in this as well
| MichaelMoser123 wrote:
| Has anyone succeded to make a living from app purchases? I am
| really interested to follow up on it, just dont know if it will
| be. enough to cover my frigging expenses. (Main question is: How
| much is left after all the other guys get their due)
| armadsen wrote:
| My full time job as an iOS developer is for a company that
| makes 100% of its income from app purchases. Mostly up front
| (our app is a plain old paid app), but we do have a couple in
| app purchases for optional extra "pro" features.
|
| That was true of my last developer job too, where I was
| (primarily) a Mac developer. There, most of our sales were
| direct, ie. not on the Mac App Store (we did have some MAS
| income).
|
| That said, it's pretty hard to become successful through app
| store sales alone, and you definitely can't rely solely on the
| app store to do your marketing, promotion, etc. The app store
| is a distribution channel, and if you get lucky, you can get
| promotional value out of it, particularly if Apple features
| your app, but it doesn't replace traditional marketing
| strategies.
| UK-Al05 wrote:
| I think in the early days it used to be common...
| emptyparadise wrote:
| I could've sworn that a lot of Stanford iOS courses were already
| on iTunes U.
| Austin_Conlon wrote:
| It's in the Podcasts app now since iTunes U is discontinued.
| bori5 wrote:
| I don't see this one, but do see earlier ones dated 2010
| kardos wrote:
| Is it weird that a /university/ is offering this course on how to
| work with a specific commercial product? Shouldn't this be the
| domain of Apple itself or a company that specialises in training?
| bredren wrote:
| Apple has a lot of programming related courses and tools. The
| docs, and their relative quality has been discussed a lot here.
|
| But in general universities have been teaching the tools of
| specific industries for a long time. Sometimes entire
| departments or buildings are sponsored by specific companies or
| programs underwritten as "industry-academic partnerships" when
| the research aims are aligned with strategic goals of a
| particular company.
|
| For example, Oregon State University's College of Forestry has
| a Tallwood Design Institute:
|
| "Its core tenets are the importance of industry collaboration,
| through outreach, education and feedback from professionals."
|
| So, teaching a particular framework may be more explicit, but
| it isn't unusual activity.
|
| http://blogs.oregonstate.edu/collegeofforestry/2019/04/09/ta...
| acomjean wrote:
| Its not completely uncommon. Sometimes its very specific the
| tooling you use. In this case the fact that this knowledge is
| going to benefit one particular company might be seen as
| problematic. You aren't going to use these skills in Linux or
| Windows development.
|
| A lot of programming classes utilized specific tech (The
| Extension school at the University I work at teaches classes on
| React and Vue and Laravel, R, Python....) These are cross-
| platform tools and generally free.
|
| I think it can be useful to have this knowledge out there. The
| parts of it that are good might end up in Open Source projects
| or give people ideas of different ways of doing things.
| yardie wrote:
| It's par for the course. When I was in university you had to
| submit papers in MS Word, Excel, or Powerpoint. Computational
| Math courses were either Mathematica or Matlab. Engineering
| courses were AutoCAD, Revit, and Solidworks. And programming
| migrated away from STL C++ to VS C++. The free, opensource
| equivalents weren't quite there yet.
|
| Using proprietary software/tools is not the worse thing
| universities have done (looking at you $700 biology dept
| textbooks).
| mgbmtl wrote:
| When I was in university, we had to submit working algorithms
| in C, Java or whatever the prof chose, but we didn't learn
| the language in class. The prof would show snippets of code,
| but never discuss the language itself. Same for Word/Excel.
| There were books at the university library if needed.
| yardie wrote:
| My CS experience was the same. We saw snippets of code in
| class. But I enjoyed CS193 much more. Just being able to
| follow along, as they debug and step through it was a much
| more cohesive experience to me than "here's a bit of code,
| to learn more go read the book after class." It was
| difficult for me to learn that way.
| tester756 wrote:
| It's always been like that
|
| Excel, Power Point, etc.
| Gorbzel wrote:
| Huh. Lots of different perspectives out there...
|
| - Is it weird that there's barely any training of practical
| software engineering in a university setting as it is, and now
| this question posits that one of the great durable examples of
| such a course is somehow against the norm?
|
| - Is it weird that a community would train someone in methods
| and concepts using the technologies invented up the street?
|
| - Is it weird to think that after decades of deeply-rooted
| institutional ties between Apple and Stanford that they
| wouldn't have a genuinely beneficial relationship and respect
| for one another?
| [deleted]
| jeroenhd wrote:
| It depends what you expect from your education. I'd
| personally expect a university to focus on the academic side
| of computer science rather than teaching typical practical
| "busywork". The theory is what I expect to count in a
| university, the practice is just a nice side effect for
| testing the theory. Others expect a university to just teach
| you how to be a software dev as best as possible.
|
| I don't believe that Apple is the best at teaching people
| proper coding techniques for their platform; they have
| trouble keeping their API documentation up to date, I don't
| expect them to be that great at teaching people how to use
| them. Different approaches taught by different institutions
| are often a great way to improve your software design as
| well, because if you only learn from a single track then you
| can easily become too blinded by how things should be done to
| think of how things can be done. So, different places
| teaching how app development works rather than letting Apple
| be the guide towards the platform is a good thing in my eyes.
|
| I can understand the ties behind the Stanford connection, but
| I would expect a university to at least design a course to be
| platform-neutral. Focussing a course on extending the very
| closed app store ecosystem from an educational institution
| feels sketchy to me.
| ronyeh wrote:
| The core curriculum focuses on theory with lots of projects
| to apply what you learned.
|
| CS193 classes are optional and are sometimes designed/lead
| by grad student lecturers who are interested in that topic.
|
| It is clear that there is a demand by Stanford students for
| this class. If someone wanted to design and teach a mobile
| dev course that surveyed android & ios, html5 mobile dev,
| and mobile UX issues, they could do so. They could call it
| CS193m or something.
| DavidAdams wrote:
| When I was an English major we studied a bunch of commercial
| products, and we had to buy them from huge corporations.
| Sometimes the authors of those products were alive enough to
| actually receive a royalty, sometimes not.
| acomjean wrote:
| I had to buy HP32s calculator as an undergrad. That thing is
| great but pricy for a university student.
|
| I imagine for this class owning a mac is a minimal
| requirement.
|
| I think your talking about books though.. I didn't like it
| when Profs used there own books.
| jefflinwood wrote:
| Apple has its own app class curriculum available, but this
| Stanford class predates it by quite a few years.
|
| If you want to learn about mobile application development, you
| have to pick a specific platform to target, and anything other
| than mobile web is going to be commercial.
|
| Ideally, the things students learn in the class aren't just
| various APIs, but instead how to build a product, work as a
| team, and solve problems.
|
| FWIW, I teach a very practical class in mobile application
| development at a university.
| Dig1t wrote:
| Yes, I so agree with this sentiment. Also I feel a little bad
| for students at Stanford who actually take this class in
| person. It seems a little weird that these students come to
| this world class institution where leading minds are doing
| cutting edge research, and they are paying exorbitant tuition
| to sit in a class and learn about how to string simple API
| calls together. Most of this knowledge can be obtained by just
| reading the documentation and tutorials on various websites.
|
| I'm sure it makes sense for some students, but it just kind of
| seems like a waste of money to me for most people.. It's good
| that it's free now.
| mturmon wrote:
| You're focusing on the apparent triviality of the coursework
| ("learn about how to string simple API calls together ...
| just reading the documentation and tutorials on various
| websites") versus the stellar skills and knowledge of the
| faculty.
|
| This applies to a lot of 1xx classes anywhere! In particular,
| foreign languages, or beginning art classes.
|
| My wife went to art grad school at UCLA. Her advisor (whose
| competence is beyond amazing, e.g.
| https://art.famsf.org/adrian-saxe) taught an undergraduate
| ceramics class, and one of his chores was to bust on his
| students who made bongs as their class project. Which he did
| with good humor. (Broke in the kiln, how about that!)
|
| What can you say? Learning happens in all kinds of ways?
| superbcarrot wrote:
| What you're describing would be a problem if they were
| studying _only_ stuff that they can learn from docs and
| tutorials. But I 'm sure that not every class is like this
| one and the students are getting plenty of exposure to theory
| and deeper knowledge in various fields.
|
| Universities need to balance out the argument that you're
| making with the argument that CS education doesn't prepare
| people for having an actual job.
| MiSeRyDeee wrote:
| I mean majority of the knowledge is online and open sourced
| nowadays, even if the most cutting edge technology,
| especially in CS field.
| minhazm wrote:
| It's not like this is a required class. You still have to
| take the required set of theory classes. This is just an
| optional elective for students to take if they want to learn
| iOS development.
|
| At the end of the day the day if you want to create a startup
| or even just get a job out college, taking practical courses
| like iOS development will put you in a much better position
| than spending all of your time taking theory classes.
| sircastor wrote:
| Universities are walking a tightrope right now. It used to be
| they'd teach you domain knowledge and theory and you'd figure
| out application elsewhere. The expense and demands of college
| have meant (in many ways) ensuring that they can hit the ground
| running, so to speak. Do courses like these provide practical
| skills along side the their theory courses.
| reaperducer wrote:
| _Is it weird that a /university/ is offering this course on how
| to work with a specific commercial product?_
|
| Not any more weird than my old college offering courses in Java
| and .NET-related things.
|
| Or high schools that teach people how to use Microsoft Word.
|
| Or a trade school teaching people how to use specific types of
| machinery only made by one company.
|
| Or secretarial schools that only taught people how to use IBM
| Selectrics.
| closeparen wrote:
| You can't really teach "mobile engineering" in abstract like
| you can with databases or computer vision or whatever. The only
| real way to do anything hands on is with one of the two
| commercial platforms.
|
| In 30 years maybe there will be an academic/open source
| "teaching OS" for mobile like there is for desktop Operating
| Systems classes today.
| Drew_ wrote:
| > You can't really teach "mobile engineering" in abstract
| like you can with databases or computer vision or whatever.
|
| Sure you could. "mobile engineering" would just be a study of
| solving computer science problems with relatively low
| resources, a finite amount of power, etc. You don't need to
| make iOS/Android apps to study this. Many lessons I've
| learned while solving problems on mobile apps can be easily
| transferred from platform to platform. They weren't Android
| or Chrome specific for example.
| closeparen wrote:
| What low-resources device are you going to actually program
| though?
| filoleg wrote:
| On a higher conceptual level, I agree with your premise in
| full. In this specific scenario, however, I don't think it
| applies.
|
| Let's imagine you want to teach your students a course on
| native mobile development. How would you do it without turning
| it into a "course on how to work with a specific commercial
| product", given that your only two relevant choices are Android
| and iOS, and both are commercial products?
| JCharante wrote:
| My university has been offering seminars on how to use Matlab
| for years. They also offer a course on getting you proficient
| in SolidWorks. I get your point that it should be offered by a
| company that specializes in training, but it's nice when
| universities go beyond pure theoretical concepts and teach
| things that can be used for side-projects.
| armadsen wrote:
| I'll go a step further. When I was in college, as an
| electrical engineering major, we were _required_ to take a
| Matlab course in our first year. Matlab was used fairly
| heavily in courses where it was useful throughout the rest of
| my major.
| mhh__ wrote:
| Matlab code is still not the same as writing Apps for a
| locked in ecosystem - The company that owns matlab wants
| matlab everywhere, Apple wants everywhere to be in iOS
| seshagiric wrote:
| If it helps someone be better prepared for the job market then
| why not? Should colleges stop teaching Java or C# because they
| are 'owned' by commercial entities?
| vincnetas wrote:
| Java or C# is just a tool to teach CS concepts. Teaching
| iPhone development is more specialized and knowledge is less
| transferable.
| [deleted]
| ronyeh wrote:
| I went to Stanford (albeit as a grad student).
|
| The CS193* classes are electives for the undergrad CS majors. I
| think this one is popular simply because lots of Stanford
| students want to make apps for the phone they have in their
| pocket.
|
| The core curriculum is based around algorithms, data
| structures, theory, discrete math, etc etc that you expect from
| a top university in CS. They use a variety of languages like
| python, java, lisp, C, etc to illustrate these concepts through
| class projects.
|
| Learning the SwiftUI API is not a required part of the core
| curriculum at Stanford.
| userbinator wrote:
| I think it's weird from the perspective of Apple being a
| notoriously closed ecosystem - I have worked in CS teaching in
| the past and Linux/BSD and other FOSS was highly preferred over
| even Windows.
| mhh__ wrote:
| People suspend their principles when Apple dangle a new toy
| in front of them
| wly_cdgr wrote:
| Should Princeton stop using Java in their CS curriculum because
| Java is a commercial product?
| mhh__ wrote:
| As if there aren't fully open source Java implementations?
| r00fus wrote:
| About as unusual as my Uni teaching based on Sun Java or
| Microsoft Visual Studio back in the 90s...
| heavyset_go wrote:
| I agree with the sentiment, but I believe this is an elective
| class. When I looked, the school I went to had electives for
| tools like AutoCAD, Adobe tools Photoshop and Premiere, Python,
| Android development, MySQL etc. If students or professors had
| interest in learning or teaching about a specific set of tools,
| often they'd offer classes on them for a few semesters as long
| as there was interest.
| gumby wrote:
| I also think it's weird too but decided it's my
| problem/snobbery even.
|
| Universities have a bunch of roles and one of them is to teach
| skills you'll need in a given job. While some of those skills
| are truly general (problem solving, certain mathematics,
| thermo) you still learn the ones most common in your
| discipline. When you start a job as a new graduate you should
| have some familiarity in the tools and language of your
| discipline -- what units are used, how people talk (different
| disciplines can use different terms for the same thing), and
| yes, the most important tools. When I was an undergraduate we
| used Bridgeport mills (yes, it was pre CNC -- they were
| installed the very next year) because those were the common
| tools.
|
| Many of the things I learned back then are obsolete, but I
| realize that most of the time was spent on the stuff that has
| lasted: diff eq, thermo, "deep skills". However I could not
| have been of any use to any employer if I didn't know (in my
| case) how to program a Lisp machine.
| lwigo wrote:
| Can't wait to see all the same apps popping up on GitHub.
| qntty wrote:
| Same! I love watching people learn new things.
| mushishi wrote:
| Here's the one I made after watching those lectures:
| https://github.com/EvidentSolutions/toodim
| jb1991 wrote:
| Hasn't this always been free? I've taken it twice in the past for
| free. When it was on iTunes University.
| omarhaneef wrote:
| Haven't there been free iphone dev courses from stanford for free
| for over a decade? I recall iTunesU hosting them, and perhaps
| Coursera/EdX, and their own website etc.
|
| Which is great, of course, but is this different?
| dang wrote:
| Thanks--I've changed the title now. Submitted title was
| "Stanford Makes iPhone Development Course Free".
|
| Submitters: " _Please use the original title, unless it is
| misleading or linkbait; don 't editorialize._"
|
| https://news.ycombinator.com/newsguidelines.html
| iscrewyou wrote:
| From the article: " Stanford has made these lecture videos
| available to all by posting them on its YouTube channel (links
| below). This website was set up to give everyone access to the
| supporting material that was distributed to students during the
| quarter (homework, demo code, etc.)."
| DavideNL wrote:
| > the supporting material
|
| This was _also_ present in the itunes-u courses in the past
| bredren wrote:
| Yes. I went through the course in one it's earliest releases.
|
| I'm not sure if all of the assignments were posted then, and
| the site wasn't as good.
| herbturbo wrote:
| Yes I learned iPhone development in 2010 by watching Stanford's
| CS193P course on iTunesU
| Audiophilip wrote:
| The title is misleading, the lecture videos and materials for
| that course have always been publicly available.
| fattypouch wrote:
| I've always wondered about Open Courses... do students get mad
| when a course they paid for is published for free on Youtube?
| iruoy wrote:
| I'm sure this is great content, but the usage of Comic Sans for
| the slides really brings that first impression down.
| nightcracker wrote:
| For what it's worth Comic Sans supposedly is an excellent font
| for dyslexic people. So at the cost of looking professional
| your content becomes available for more people (or that's what
| some believe - I don't know of any peer-reviewed study on its
| readability).
| rangoon626 wrote:
| There is something funny about it being an Apple centric course
| that is using comic sans
| ludwigvan wrote:
| I don't think it is Comic Sans. Probably Chalkboard:
|
| https://en.wikipedia.org/wiki/Chalkboard_(typeface)
|
| http://www.identifont.com/differences?first=Chalkboard&secon...
|
| If you want to see a prominent Computer Scientist using Comic
| Sans, you need to watch Haskell creator Simon Peyton Jones'
| talks:
|
| https://www.reddit.com/r/haskell/comments/1bd1ia/spj_and_com...
| roperzh wrote:
| A lot of people are mentioning that this is old news, but that's
| not the case for me: thanks for sharing!
| dfabulich wrote:
| The submitted title of this page ("Stanford Makes iPhone
| Development Course Free") is misleading, and should just be the
| title of the page, "Stanford CS193p - Developing Apps for iOS."
|
| Stanford's iPhone development course has been free online for
| more than 10 years.
| dang wrote:
| Thanks! Fixed now.
| aero- wrote:
| What would be an advantage going for swiftui vs. React Native for
| a startup? I feel like the cross platform nature of React would
| be more beneficial for starting a new platform or business. Of
| course swift will operate better for ios but is the tradeoff that
| great with React Native?
| reasonabl_human wrote:
| Interested as well. I've heard a number of tech companies use
| react native on iOS targets which allows for easy reuse of
| components developed for web UI, and any mobile... certainly
| where I'd lean given the choice based on current information.
|
| There was an engineering blog post from discord a number of
| months ago discussing their use of react native bottlenecking
| iOS app performance, and they ended up converting some key
| react data structures to native iOS constructs within the react
| native app and crushed those bottlenecks. My takeaway was that
| developer ease and reusability should be prioritized until you
| hit a performance wall at scale such as discord did, at which
| point you'll have the money to pay other engineers to optimize
| the important parts of you don't have the time or know-how ;)
| jamil7 wrote:
| The advice I give roughly to clients is to go native if your
| business heavily depends on mobile. Otherwise React Native is
| pretty viable, especially for small teams of generalists. In
| terms of SwiftUI, most businesses aren't building entire apps
| in it yet.
| spideymans wrote:
| React Native will get you to an MVP way faster than
| native/SwiftUI development. However there is the massive risk
| that you'll find yourself shackled to React Native if you want
| to grow the capabilities of your app to beyond what React
| Native can accommodate. React Native make development faster,
| but traditional native development is the safer option in the
| long term.
| samirsd wrote:
| i've never used react native but regularly use react for the
| web and find swift/swiftui development to be faster and less
| complicated overall
| GekkePrutser wrote:
| Hmmm nice! I did this years ago when it was called "Coding
| Together". Was a really good course!
|
| PS: It was free even then (same course number and everything) so
| not sure what's changed here :)
| guilhermetk wrote:
| A big shout out to Paul Hegarty, one of the best teachers I've
| ever had, even though I've only attended his online classes.
| randomifcpfan wrote:
| Old news? These excellent videos have been posted on Stanford's
| YouTube channel for 8 months:
| https://youtube.com/playlist?list=PLpGHT1n4-mAtTj9oywMWoBx0d...
| rudedogg wrote:
| Yeah these have always been free. I got excited thinking maybe
| it was a more recent class being published, but it's not.
|
| Anyway, they're good!
| randomifcpfan wrote:
| Oh, I see. The new news is that the course materials other
| than the videos have now been posted.
| steve_taylor wrote:
| Paul Hegarty does a great job of refreshing this course every
| year so students are taught Apple's latest tech even when the old
| stuff isn't deprecated. I've been coming back to CS193p lectures
| for years and they're always up to date.
| chewmieser wrote:
| I learned iOS development from their courses on iTunes U many
| years ago now... Good that they're continuing with it though.
|
| Edit: here's one source from 2011 -
| https://news.stanford.edu/news/2011/november/itunes-apps-cla...
| amelius wrote:
| Lesson 1: do exactly as Apple tells you. Don't try to build your
| own web engine. And don't write apps that are not suitable for
| children.
| ffggvv wrote:
| this was always free. when i first learned ios development like
| 5+ years ago i took this course on youtube
| Me1000 wrote:
| Yeah, it seems like they make this course free a lot.
|
| I remember almost 10 years ago watching Evan Doll instruct this
| class. I think I watched it as a video podcast at the time.
|
| To be fair, I'm sure the course changes from year to year.
| amatecha wrote:
| I guess the significant part now is that it's the latest Spring
| 2020 version of the course that's now available for free?
| Pretty cool!
| wly_cdgr wrote:
| It all looks trivial until you actually start building
| newbie578 wrote:
| Off topic, but looking at the curriculum of the course and the
| more I read about native development, the more I love Flutter.
| There are so many barriers to entry for native development, to
| develop and publish a simple app is such a complex procedure that
| I respect anyone even trying to go Native first without any prior
| knowledge.
|
| Flutter on the other hand, is a pure joy. Almost anything you
| need UI-wise is prepared, and you can just customize it the way
| you want (try implementing a ListView in native vs Flutter). For
| the big majority of today's apps native is just not neccessary,
| most apps don't need bluetooth access or some other specific
| service.
|
| Especially from the business side, Flutter is way better. You
| need to maintain only one codebase which results in less need for
| resources. And you are way faster, you can iterate like crazy and
| push out an MVP...
|
| And when stable Flutter Web arrived, it is game over...
| dimmke wrote:
| I agree - native development is bad. I had an iPhone app that I
| built using native Apple stuff and it was miserable. And the
| whole time you're struggling with their buggy UI framework you
| can't even take solace in that you're learning useful skills
| because it's all specific to Apple development. From the
| programming language to the frameworks/APIs you use.
|
| It's so domain specific that IMO it's not worth trying to do
| that kind of work unless it's your main career. I ended up
| taking the app I had built down because I kept getting support
| requests for bugs I didn't know how to fix and the idea of
| going into the code to add more features filled me with a sense
| of dread. The app was doing somewhat well too, it had about
| 1000 DAU.
|
| I built another app for the CDC in React Native, which has its
| own foibles but is overall much easier. I'm not sure how
| successful Flutter will be overall because you can't leverage
| outside skills and you have to learn a different language.
| nezaj wrote:
| FWIW, my buddy and I built and launched a simple iOS app
| (Export Health!) in the App Store in two weeks using SwiftUI.
| The whole app is basically one file and under 1MB including all
| the iOS extras. Both of us are professional engineers but only
| had minor exposure to iOS before building this app.
|
| A few years back I built internal apps at work using React
| Native. Warts aside, it was a great dev experience and was able
| to re-use code 100%. However, having to ensure all was well
| with both iOS and Android (and indeed sometimes there were edge
| cases) slowed me down.
|
| SwiftUI and the Combine framework provides a similar dev
| experience I felt using React Native. Moreover, app previews in
| XCode make it straightforward to paint different application
| states and iOS settings. Building for one platform also reduces
| the quality check surface, allowing you to spend more time
| focusing on product.
|
| If cross platform is a necessity from the onset (e.g. internal
| app for work where all employees need access but may have
| different phones) then starting with non-native makes sense.
| However I personally recommend anyone looking to build a
| product as an app to focus on iOS first and use SwiftUI. I
| reckon you will move faster, have a smaller code base, and a
| better app. All of which are conducive to finding PMF if you
| intend to make a business out of your product
| triztian wrote:
| As an iOS engineer with native and flutter experience, not
| needing access to hardware and OS specific APIs is a BIG
| assumption, I used to not need access until I needed them and
| it was somewhat painful most of the time, either support was
| not there how we needed it or some APIs were awkward to use.
|
| I'd also say that the write once support on all devices is
| definitely not a 100% thing. There is definitely a lot of
| tweaking for adding support to specific platforms and devices
| (think iPad vs iPhone vs Android Phone vs Android Tablet). I've
| also found it that its a lot easier (when compared to native
| development) to create code that needs to be heavily refactored
| out when adding support for additional devices while also
| making sure to not braking things on other platforms. This last
| point complicates development because then you are forced to be
| familiar on how to test and debug on each platform, making sure
| that changes or issues fixed on a specific one don't break the
| other ones; this for sure adds a ton of development and testing
| time, specially when you go beyond just android phones and
| iPhones.
|
| Where flutter has shined for us though has been for internal
| tools that we deploy and for which the UI is not designer-
| driven or that don't have stringent design and performance
| requirements.
|
| Now don't get me wrong; I'm well invested in flutter but it
| does not come without its compromises, specially on iOS being
| second in line support after Android. It definitely gets you
| quicker to market with an MVP on more platforms compared to
| pure native development.
| gman83 wrote:
| The idea is that over time as the ecosystem matures, you will
| need less and less need for platform channels because there
| will be more plugins available on pub.dev. Personally I think
| the Flutter team is taking too much on their plate porting it
| to Linux/Mac/Windows/Web at the same time. I would rather see
| them make the iOS and Android implementations rock solid and
| create great plugins for hardware & OS specific APIs.
| gumby wrote:
| Upvoting you because the downvoting was unfair.
|
| Nevertheless I think your position is naive; most interesting
| and engaging apps need more information than you can get from a
| generic tool alone.
| krts- wrote:
| It feels like SwiftUI, and other native tools, are embracing
| the advantages of some of these other cross platform tools:
| declarative, rapidly-iterable, abstracted.
|
| I feel SwiftUI markedly lowers the 'barrier to entry'.
|
| Crossplatform tools may serve your purpose better, but I think
| it's unfair to say that, at least for SwiftUI, native
| development may not be as 'joyful'. A list view in SwiftUi is
| List {}.
| yardie wrote:
| Did this course almost a decade ago when it was ObjC based. Never
| really pursued iOS development (a big mistake on my part) but
| with Swift and SwiftUI I'm game to give it another try.
| balls187 wrote:
| I was an ios dev via Objective-C in another life.
|
| Swift and SwiftUI is such a fundamental shift in experience for
| the better.
|
| There are a few esoteric things based on full interoperability
| with ObjectiveC and the cocoa API's, but for most apps, it's
| really straight forward.
| ABeeSea wrote:
| Looking at the slides, this course is based on SwitftUI which
| only came out in the last year or two while previous versions
| used UIkit.
| rangoon626 wrote:
| Exactly! This is the best resource on SwiftUI I have found yet!
| jonas21 wrote:
| I'm so glad that Paul Hegarty is teaching this. Not only does he
| know the material through experience (I think he was an early
| employee at NeXT and continued on at Apple), he also explains
| things really well and works through lots of examples. It's also
| clear that he enjoys teaching the course, which makes a big
| difference.
|
| I watched an earlier iteration of the course, and it's the reason
| I know iOS development today. I don't often write reviews (and
| certainly not on HN), but I absolutely have to recommended this
| course for anyone interested in learning mobile development.
| Austin_Conlon wrote:
| Minor nitpick, he was a VP at NeXT but not early on and didn't
| go to Apple.
| williesleg wrote:
| I guess they need more developers, eh? Nice job Tim Apple!
| LegitShady wrote:
| I'm assuming you need a Mac computer to develop ios applications?
| I have an iphone and ipad but I won't purchase their computers.
| hamburglar wrote:
| You can now do it on AWS MacOS instances
| mcraiha wrote:
| But in long run it is cheaper to buy used Mac Mini for XCode
| builds.
| janaagaard wrote:
| > I'm assuming you need a Mac computer to develop ios
| applications?
|
| You do, if you want to code in Objective-C or Swift (likely the
| languages tought in Stanford's lectures). But React Native and
| Expo's EAS services (expo.io/eas) has made it possible to avoid
| buying a Mac. EAS requires a subscription and you also need an
| Apple Developer sunscription to publish to their AppStore.
| jonas_kgomo wrote:
| I guess you could use Flutter to do hybrid applications
| gumby wrote:
| A side point but as you're OK with the i* devices I'm curious
| what it is about the macs that lead you to "won't".
|
| (Not trying to start a flame war here)
| LegitShady wrote:
| My work provides me with an iphone (which i only use for
| work). I like the hardware but the OS is super limiting.
|
| I bought an ipad pro for art - mostly Procreate (is that
| sad?) but I also use a 16" wacom display tablet attached to
| my desktop when I'm not mobile. I also use it to play with
| music recording on mobile with a small midi keyboard and some
| synth apps. The ipad hardware is really nice. The OS is super
| limiting to the point of frustration. If there were alternate
| non-apple hardware of similar quality for what I do on ipad,
| I would likely switch. As it is the device is just for
| 'playing' creatively.
|
| For a computer, I regularly run software with no mac ports
| and I'm not a big fan of the way apple is fundamentally anti
| consumer in its approach to product repair, OS design and
| controlling what software can be run on devices. I don't want
| to invite that sort of intrusive tech control over my life in
| the future by buying into now as a principle computing device
| when its more 'open' (even though apple is fundamentally not
| open) I've seen this kind of thing coming as apple gets more
| and more aggressive with its policies.
|
| Apple's move to their own silicon only makes me think they
| walled garden will get an even more impenetrable wall, and
| I'm just not interested. (The hardware is good but the OS is
| limiting, and it seems likely to me that the longer apple
| makes their own silicon the less likely it will play nicely
| with anyone else. Apple wants you to buy their shit and they
| don't care if it doesn't work with anyone else's).
| mikestew wrote:
| Technically, no; my first App Store release lo those many years
| ago was developed using a Hackintosh. That was like ten years
| ago, though, so maybe something has changed that requires, say,
| the Secure Enclave or something.
| wing-_-nuts wrote:
| I wonder how macs move to custom chips will impact the
| hackentosh community going forward. I can see the day when
| intel is simply no longer supported as a platform.
| rdsnsca wrote:
| Apple Silicon will kill the hackentosh. I expect Intel to
| have 5 years of support left, based on the PPC to Intel
| shift. One more system upgrade then 3 years of security
| updates.
| wing-_-nuts wrote:
| Maybe by then mac hardware won't be required to write ios
| apps? That's always felt rather monopolistic to me. It
| would be like MS refusing to deploy anything that wasn't
| written on a surface, or google refusing gcp deployments
| from anything but a chrome book.
| mikestew wrote:
| _That 's always felt rather monopolistic to me._
|
| It always felt like a smaller company that didn't want to
| support multiple operating systems. But Apple's not all
| that small anymore, right? Well, the fallback to that
| argument is the long-standing habit of pretending other
| systems don't exist (Mac vs. PC commmercials
| notwithstanding). Best I recall, one will rarely (if
| ever) hear Apple comparing, say, iOS to Android. Nope,
| it's just "iOS is awesome, and here's why". Given that,
| why port your dev tools to a system that you'd rather
| pretend didn't exist in the first place?
| frsandstone wrote:
| I kickstarted my career 8 years ago by going through an old
| version of this course online. Huge props to Stanford for making
| it more easily consumable by others.
| avipars wrote:
| I took the swift course a few years ago. This is great for
| beginners and not bad for android developers either
| totaldude87 wrote:
| i always admire the fact how the professors who teach
| professionally, ease us into things while many youtubers struggle
| to do so. Its not all about what you know, its more about how the
| other person ..
___________________________________________________________________
(page generated 2021-02-10 23:00 UTC)