MobileSpace was started in Fall 2016 due to the lack of an iOS course in the CS cirriculum @ SF State. Hence the primary objective of MobileSpace was to help fill this knowledge gap and enable students to learn and discover their passion for building mobile apps.
The course lasted for 3 months, and at it’s peak the community was 15 members strong. Six students successfully completed the iOS course, and they attended all 12 meetups (1 meetup every weekend). Lastly, one alumni is currently working as a full-time iOS Engineer in SF, and three others are pursuing a career in iOS development.
To hear my journey and learn more about MobileSpace, read my blog post here.
Since then, I have have been doing a lot of cross-platform mobile development with React Native and have mostly good things to say about it. Most notably I maintain the popular React Native Elements repo which is the most starred UI Toolkit for React Native. Additionally you can see some of my other React Native work here.
Recently, a few students at SF State expressed an interest in learning React Native, and that made me decide to do MobileSpace Season 2. And this time I would be teaching React Native instead of iOS development.
I have heard of React Native as a good alternative to Swift. Since you are offering this React Native course and as someone that's worked professionally with React Native.. what do you think about it?
Why should I learn React Native instead of Swift?
Here's my tldr;
- share 90% of the codebase between iOS & Android; (saves a ton of engineering time & resources)
- write mobile apps with JS (easier for web devs who already know JS)
- a more active developer ecosystem (the React ecosystem in general)
- wide adoption by major tech companies (Tesla, FB, IG, Airbnb etc)
Also there are lot of really good medium posts talking about exactly this: native dev vs react native.
Here are some good posts that I'd def recommend reading that helps to puts this in perspective.
- React Native vs Real Native Apps
- React Native: Bringing modern web techniques to mobile
- Comparing the Performance between Native iOS (Swift) and React-Native
This readme serves as the roadmap for MobileSpace Season 2. In it are outlined the course objectives, weekly meetup assignments and most importantly a beginner friendly curriculum to learn professional React Native development.
- 1 meetup/week for 3 months - Feb 3rd => Apr 29th 2018
- Meetup day & time - Sunday 12-2pm @ SF State Library
- Any community member that misses two consecutive meetups will be asked to leave the community due to lack of commitment.
To make sure that all community members learn professional mobile development as well as general software engineering skills in turn preparing them to land an summer internship or a full-time software engineering position on their own.
Also it's not just about the technical skills that are taught during the course, but it's also about developing the right midset and ability to think through a technical problem, product spec as well as working in a team setting.
The following learning patterns will be re-enforned throughout the course:
- Even though this is a beginner friendly course, we will not delve into the basic theoretical concepts of Javascript, React etc. Instead we will take a very practical approach to learning and jump head first into HelloWorld projects and then start filling in the knowledge gaps as they come up.
- We will try to build production ready apps & uses cases that can be showcased on your portfolio. (This is to say that we will not just build dummy apps for the sake of it)
- Collaboration is key. Be respectful of your peers and the community you are part of and be willing to help others and foster an environment of learning.
- Working in teams - each week, you will be paired up with another person and it's your responsibility to work on assignments independenly yet work together to resolve any problems that come up or ask questions on Slack.
- Course Introduction
- Intro to Github, Javascript (JSX) and React
✅ 14 students
- Git & GitHub Crash Course For Beginners [YOUTUBE]
- The JavaScript language [WEB TUTORIAL]
- React Express ⭐ ⭐ [WEB TUTORIAL]
- JSX intro | React tutorial series [YOUTUBE]
- Learning React state, props and functions
- Intro to CSS styling (flexbox)
✅ 14 students
- Learn React - Free courses on Egghead.io ⭐ ⭐ [VIDEOS]
- React controlled components [OFFICIAL DOCS]
- How Flexbox works — explained with big, colorful, animated gifs [BLOG POST]
- Flexbox CSS In 20 Minutes [YOUTUBE]
- Flexbox Froggy - A game for learning CSS flexbox ⭐ [GAME TUTORIAL]
- Flexbox Tutorial (CSS): Real Layout Examples [YOUTUBE]
- Session Storage and Local Storage in React [BLOG POST]
- Intro to React Native, Expo and CRNA
- Intro to RN styling (flexbox)
✅ 13 students
- React Native Express ⭐ ⭐ [WEB TUTORIAL]
- React Native - Learn the Basics ⭐ [OFFICIAL DOCS]
- React Native - Components and APIs ⭐ [OFFICIAL DOCS]
- React Native Styling Cheat Sheet [GITHUB REPO]
- The Complete React Native and Redux Course - Udemy Paid course [ONLINE COURSE]
- Learning React Native API's
- Advanced RN Styling
- Intro to NPM libraries
Working on Daug Social Network mobile app - Skeleton (part 1)
✅ 11 students
- Mobile Guides - React Native ⭐ [README GUIDES]
- Intro to React Navigation
- Advanced RN Styling
Working on Daug Social Network mobile app - Navigation (part 2)
✅ 11 students
- Mobile Guides - React Native ⭐ [README GUIDES]
- Making API calls with React Native
- Authentication flow & AsyncStorage
Working on Daug Social Network mobile app - Backend (part 3)
✅ 11 students
- Mobile Guides - React Native ⭐ [README GUIDES]
- Advanced API calls
- React Native wrap-up
- React Redux
Working on Daug Social Network mobile app - Wrap up (part 4)
✅ 11 students
- Mobile Guides - React Native ⭐ [README GUIDES]
- Built a fully functioning mobile app with React Native + an API (3 weeks)
✅ 3 Teams
- Demo the app
- Partyy 🎉
✅ Watch Season 2 Demo Day - Youtube
In case you have suggestions on how this roadmap can be improved, kindly open a new issue and let us know.
And if you like what you see or have any questions about this repo or MobileSpace in general please reach out to @monte9 on Github.