Important
Be sure to join the ACM server if you haven't already. This will be our main means of communication.
Note
DM ani_bytes at Discord if you need the invite.
Important
Link to team roles listing and sandbox flutter app: https://zapp.run/edit/flutter-zx3y06w2x3z0?entry=lib/main.dart&file=lib/main.dart
- LinkedIn -> Beef up the experience section on LinkedIn with the apps we build.
- Develop Transferable skills -> Working on a team to build an app, learning new coding languages, managing workload along with college. What else can recruiters ask for?
- Monetization -> Obviously, once we gain momentum and experience, this doorway opens.
- Make a name -> Create apps for great causes, create popular apps, etc
Here's the type of team enviroment I'm working to build. Let me know if anyone has suggestions.
- Flexibility -> Being in college means less time. Making sure indviduals have flexibility on when they can complete work is a priority.
- Assisstance -> Help each other through problems and rely on the team. Build friendships with like-minded people on the team.
- Competitive -> Code apps with the intent to be the best on the market, no matter your experience level
- Continious Learning -> Once we get done with one language, we move to another harder one.
- Discipline -> Get it done regardless of motivation. That's how we go to the top, by doing things that not everyone is willing to do.
It goes without saying that any major undertaking requires planning beforehand. That is especially true for mobile development. I speak from experience when I say, you're headed for disaster if you don't plan out all your components, screens, backend, etc before you touch the keyboard.
For that reason, I gathered information on the process of app development with extensive research.
Here are the basic steps I found, we'll be using this process for all our projects. The goal is to give us a basic idea to work with while still allowing flexibility and creativity with the app.
Tip
If a coding related doubt ever comes up, you should ask Stack Overflow, your teammates, lead, and SIG Leader in that order.
Tip
Leads, if any serious problems arise, you can go to the SIG Leader and project manager.
Note
The idea is to push indviduals to solve their own problems and grow, while also making sure one person isn't answering everything.
- Roles involved:
- Everyone
Let the creativity flow! This is the stage where...
- Find an idea that's not already on the market
- Where is the future headed? What kind of app leverages that? What trends can we hop on | Can we create a new trend?
- Research possible selling points and features | What do we have that others don't?
--
- Roles involved:
- Everyone
We have a great idea, but is it possible? This is the stage where...
- Research potential databases/APIs/libraries that can be used to make the app | Ex. If we make a book app, how will we get the book info? Local database? API?
- Are there any problems that will arise if we proceed with the creation of the app? | Ex. Limitations with the coding language/library we'll be using
- What features will there be available on the app?
- What platform will we be using?
- Any other problems?
Note
If we can't find solutions to the problems we think of, we go back to Step 1
--
- Roles involved:
- Designers
- Managers and Leads
- Anyone who'd like to pitch in on design
Now we visualize it. This is the state where...
- We draw up the screen visuals to help us see what we want
- All screens will be drawn by designers
- Everyone pitches in and requests changes to the designers
--
- Roles involved:
- Backend lead
- Backend team
- Managers and Leads
We figure out how we make it work behind the screens. This is the stage where...
- What backend functions are required for the actions taken by the user in the frontend?
- How can we use the database to achieve this result?
- Code the backend and all functions
- Make them easily readable for the rest of the team
--
- Roles involved:
- Frontend lead
- Designers
- Fullstack lead
- Frontend team
- Managers and Leads
It's time to work off the hard work of the backend programmers. This is the stage where...
- Screens are established
- Designer is consulted to see if everything looks good, or additions are required
- Button presses are connected to backend functions
- Everything on the UI and UX is taken care of
- Fullstack lead goes through the code and finds errors if there is a problem between connecting the frontend and backend
--
- Roles involved
- Everyone
The app's done! But is it really? This is the stage where...
- Tester goes through every screen and uses every feature
- Tester tries to use the app in different devices to see if the screen changes dynamically based on available screen space
- Everyone voices opinions on how the app could be better
Note
If the tester(s) find any problems, they direct them to the appropriate team/lead so it can be solved
--
- Roles involved
- Everyone
Now the app's really done. This is the stage where...
-
We go through the publication process to get our app published
-
This requires another round of testing where we need to run a closed app test (Our app is available on the store for a select amount of people)
-
These select people will then test the app and get back to us. If everything's good, we go forward and get our app published.
-
Marketing, if necessary. We go on social media and tell everyone that new app is available
-
Obviously, if we build an app for an organization such as UIC or someone else, the organization will take care of spreading the word
- The entire app process will be chuncked off into sections
- The sections will have deadlines based on how time-consuming they are (You will have a lot of time to get it done)
- We complete each section based on the timeline until the entire app is complete
Simplified: SIG leader and Project Manager come up with a timeline --> Timeline is given to the leads --> Leads will coordinate their respective team of devs to get the assignment done based on the time given
Note
Any problems with the schedule/ability to complete assignment should be communicated
Important
The lead needs to consider the schedule and timings of their team, and organizes work around that. The lead should be talking to their team and making sure everyone's doing good, and no problems are arising.
Note
This entire process assumes that everyone voices any hardships that occur during the process. So if the timeline collides with your schedule, or if something comes up and hinders your ability to complete assignments on time, speak up!
- 1 week -> Design team - Draw up all screens based on your creativity and imagination
- 4 days -> Design team - Design is presented to the team and designer makes adjustments based on what everyone thinks
- 2 weeks -> Backend team - Backend team creates functions requierd to make features possible
- 3 week -> Frontend team - Frontend team codes the screens and connects buttons and user input to backend
- 1 week -> Tester - Tester goes through every screen and tests features
- 2 weeks -> Everyone - Reiterate through necessary steps and consult appropriate teams to get bugs fixed
- 2 weeks -> SIG Leader and project manager - Closed testing begins
- 1 week -> SIG Leader and project manager - Steps to publish are taken and the app is launched
Note
Fullstack lead: Throughout the entire process, you will be consulted about database/fetching issues from the backend and frontend lead. You will work to make sure everything's working smoothly and data is being fetched optimally and displayed in the front properly.
Note
SIG Lead: I'll be all over the place helping out wherever the most pressing problem is. So leads please reach out if assisstance/more manpower is needed.
Note
Project Manager: You'll be adjusting the timeline based on complaints/concerns from the entire team, and also prioritizing tasks as neccessary. You'll also be available if any extra manpower is needed.
Important
Notice how each team only has to work for one to two weeks in the process. That's the entire point of this structure. After your week(s), you'll only need to work when problems come up and you are consulted.
There will be physical, in-person meetings as the schedule of everyone permits. The timings for these meetings will be established well before, so we can get everyone there. They won't be frequent, but they will be important since they'll be information/review sessions.
There is no set online meeting time as of now, since each team is going to operate on their own and try to solve their own problems. Most of our collaboration will be over Git.
We'll be using Discord VC to clear any doubts on coding on the indvidual level. For example, if a developer has a question they can't wrap their head around, they can contact their lead and get on vc/DM them to get it cleared.
Additionally, groups (frontend, backend, leads, etc) may meet over VC if it's neccessary, that's completely up to each indvidual team.
During major events (like launching of an app), a in-person hangout/meeting or a whole group VC with everyone may be organized so we can celebrate/discuss a matter. You'll be notified of such events a lot of time in advance.
Bottom line: We won't be having any set schedule for meeting times since it's not always necessary. If it is necessary, you'll be notified well in advance.
These are the languages and tools we'll be using for our very first project
- Flutter -> Frontend
- Dart -> Backend
- GetX -> State Management
- SQLite -> Database
- Git -> Sharing and peer coding
- VSCode -> Collaborative coding with Microsoft Live Share and text editor
A well established structure is essential if we want to finish our tasks quickly and get our questions answered promptly. Here's a sandbox Flutter app I created that explains each role, as well as tells you your role on the team.
I made this a sandbox app because I'd like newer members coming into app development to get a feel of what it looks like. Don't be afraid if you are overwhelmed, just focus on one thing at a time.
It's not nearly as hard as it looks. I myself did this also to learn Flutter, because I don't have much experience with Flutter and Dart.
Be sure to play around with the code! Your project will be forked and my work nor others' will be affected. This is the main reason I made this a sandbox code instead of a plain old document. I want members to play around with it and change things to see what it does.
Here's the link! Team Roles Sandbox Link