Coder Social home page Coder Social logo

mobile's Introduction

Mobile

Official Repository for HackCville's Mobile Application Development Course

Description

Mobile is a new HackCville course focused on developing mobile applications that are compatible with both iOS and Android.

Class Slides

Class slides can be found in the following Google Drive folder: https://drive.google.com/open?id=1DWSdE0mKsn7qKfYubSvgrNxsGMAeWlJS

Class Format

We will meet regularly on

  • Sunday 1-2:45pm

These class times will be devoted to some introductory learning, pair programming to reinforce concepts, time to work on personal projects, and larger community events (potentially including some speakers from Charlottesville software engineers!).

Expectations

Participants are expected to attend both meetings each week. If more than four absences are recorded, there is a risk of not completing the program and discontinuing membership with HackCville, so if you feel you’re at risk here, please talk to an instructor to evaluate your situation so we can try to work something out.

Major Projects

Project 1 (Workshop): Mobile App thinking and ideation

Think of an mobile application that could be useful / could solve a problem for a new college student at UVA. The goal of this exercise is to start thinking about the things that need to go into an app. Create a very rough wireframe of what the app interface would look like: you can either sketch this on paper or use a wireframe website (I recommend Marvel). It doesn't have to be super detailed, just enough to give an idea of how a user would interface with the app. After you have a rough sketch, think of what tools you would need to build your application, and prepare a brief presentation on your idea in Google Slides. Here are some things to think about:

1. What is the purpose of the website?
2. Do I need to grab data from anywhere?
3. Where would I want to store data?
4. Do I want to focus on either Android or iOS users?
5. Specific programming language(s) to use? (don't worry if you don't know any for this one)
6. Would I want users to sign in, and how would I handle user authentication?

The list above is just some things to think about-- you don't necessarily need to include every one, and are not limited to the list. Obviously, some of these topics you may not know a lot about, as we have only had about an hour of class time! Not to worry, we just want to see that you have given a couple topics some thought (google is certainly your friend here!)

What to submit: (working) link to a google slides filled in on this Google Sheets: https://docs.google.com/spreadsheets/d/1xjOy9KrdCikur-DwEUVJuv2IvDiux-zs8QAP71TdaLk/edit?usp=sharing

Project 2 (Mid Semester): Mobile app with API Functionality

This project will be a bit more open-ended: find some neat API on the internet, grab some data from it via fetch, and display it in a React Native app in a cool way! If you have time, try to practice using multiple React components: for example, make the fetch api call in 'App.js' and pass it down to be displayed to a child component. For a bonus challenge, you can try to make the api call based off of user input.

Project 3 (End of Semester): Full stack Mobile App Deployed with Expo

As we reach the end of Mobile, we will be able to make React-Native apps, hit API endpoints, grab data from the backend, and finally deploy the projects with expo that can be viewed with the expo app! Using all these skills, we will come full circle by trying to make our initial app ideas during Project 1 a reality. Given that Project 1 was open-ended, you may need to limit the scope to be more feasable to the time period of 2 weeks for this project. As an alternative, you may also choose to enhance your Project 2 by adding backend functionality, as well as deploying it via expo.

Week 0

Hello World! At the kickoff we will get to know each other (don't worry we will limit the icebreakers),g ive an overview of the semester, and see what Hackcville is all about! We will also set up everyone's machines with the appropriate software for the semester, and have a brief introduction to git if we have time.

Week 1: Overview of Git, Node, and the Terminal

Although not the most flashy, Git and the Terminal two of the most important tools that develops need to know. Git is a software that allows us to control versions of our code and allows us to collaborate with others, while the Terminal is the "home base" from which we will navigate our computer files and run code.

Week 2: Advanced Javascript

We will touch quickly on several more advanced topics that in Javascript that are crucial when we start working in React, such as mapping and certain special types of function calls.

Week 3: Introduction to React

This is where the fun begins! We will start to make web applications in React, going over the fundamentals and all the necessary components.

Week 4: React Native / Expo

Now that we are familiar with React, we will now learn about React Native, which allows us to create mobile applications using the React Framework

Week 6: API Requests

It would be pretty neat if our apps could grab data from somewhere like Instagram or Google Maps. This week we will learn how to make api requests within our app to grab data. We’ll go over how to make your code “wait” while it’s pulling from these resources and how to do so using HTTP requests, which make up the bulk of how computers talk to each other over the Internet.

Week 5: Group Project

You now have a good grasp on the basics and how to grab data--lets put those skills to work on a project that you and a group decide on!

Week 7: Speaker (TBD)

Speaker (TBD)

Week 8: Node Modules

Why write code that someone probably has already written before? We will take a deeper dive into node package manager this week and take a look at all of the cool packages that you can install to make your life as a React developer easier.

Week 9: Firebase

We’ve come to love JSON’s, right? Well, we’ll be looking at an online database that’s literally structured like a giant JSON! We’ll go over the basics of using Firebase to read/write data online and briefly touch on some of the other functionality it has (login systems have NEVER been easier).

Week 10: TBD (Have program coordinator teach a skill that they learned)

Week 11: Final Project

Week 12: Final Project

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.