Hello! Mentor from Team 5401 here! Over the past few months, the Captain of our Programming Sub-Team has been working an FRC specific Safety App and he’s looking for teams/individuals to beta test it. The beta version is expected to be released sometime in the next week or two and if you’re interested in being a beta tester, you can sign up here. If you have any questions about the app, please let me know and I’ll do my best to answer them. Thanks!
What does the app do?
In short, it’s a digital “build your own” safety binder. One person on the team fills in all of the relevant information for each of the sections and then via a text file, that information populates the app on everyone the team’s phone. It will be available for iOS and Android.
I don’t mean this as offensive in any way, I think students doing native dev is awesome and should be encouraged. BUT…
The obvious question - what does this being native have over a progressive web application or, honestly, a google drive document?
What I really mean is, has the student given thought to the business case behind two separate code bases and approval processes? Are the more efficient ways to do this? (No is a perfectly viable answer, Im still happy a student took the time to do it.)
Speaking from experience… some venues are not conducive to a reliable cell signal. Some students don’t have data plans. Some shops don’t have wifi available. I think there’s space for a native app, something that can be set up and loaded without impacting data plans or relying on wifi being available. There are, of course, other solutions possible as well (such as Google Doc’s “Available offline” feature). There’s also the possibility of expanding the app to include common safety practices, safety videos, machine use guides, and other such items that teams would find useful.
Yup–you hit the nail on the head. We want this to be accessible wherever our team is–Wifi/Data or no Wifi/Data. Also- we didn’t want his to be a a server side app because (despite having rack mount servers) we don’t want the burden of hosting everyone’s data on a server that we’re responsible for.
The advantage is that it helps tell you what should be in your safety binder and organize it. If a team has a mature safety program and a way to deploy their safety program already, they may not benefit very much. But even a team with a good safety record and procedures may not have it documented in a structured way, and this provides a template for that structure.
I don’t understand the question about the separate code bases.
Also, we had a student taking an App Development class from the high school that was not going to be much of a challenge for him, so this provided the opportunity to give him a grown up project and something useful for FRC at the same time.
I had a similar question, hopefully I can rephrase the original the way the author intended it: Two separate codebases written in different languages (Swift for iOS and Kotlin/Java for Android) require substantially more maintenance than one codebase. If a feature is added in kotlin for android, it needs to be added in swift for iOS. The build system is different for both as well. Were the difficulties inherent in maintaining separate codebases for the native apps considered before making the app?
BTW, very cool idea! I really enjoy seeing the outside of the box work other students do for their teams.
I think he was getting at the split Android/iOS development - they use different languages, thus different code bases. However, there are some common, cross-compiling frameworks out there that really make it not an issue - one code base, built for two different OS’s.
Works for me. And now I’m super impressed that the student understood the users problems
He is using Flutter to cross compile. Its worth noting that when we laid out the project parameters, I was perfectly ok going with Android only development but he insisted on doing cross platform.
It certainly ups the audience.
Would LOVE to hear some thoughts on Flutter as well. I’ve done some small things with it but very quickly ran into the “well it doesn’t do this” wall.
Unsure if this is part of your app, but one of the few things I can think of to keep handy might be a section specifically for MSDS info about particular chemicals or materials a team is using.
These should be printed out anyway, but an in-app version could be useful as well if it can be navigated to quickly.
I’ll pass this along! Also- you should sign up to be a beta tester so you can give us more feedback!
I know you said you were transferring between devices using a text file… it would be handy to have the MSDS sheets uploaded to the app as a PDF (picture out work as well). I wouldn’t trust MSDS info that was manually entered into an app, but if it was just a way to view the official MSDS sheet from the manufacturer, it would be much better!
Agreed, additionally because an MSDS isn’t exactly something you want a typo in.
So… just spit balling an idea here - MSDS can be looked up, https://cloudsds.com/api-integration (quick google) and you could transfer required MSDS via text file.
And if we’re going this route… tablet support?
So I am definitely going to pass the link on to our developer. As for tablet support, I will have to ask him and get back to you.
This is the developer for the application if anyone would like to ask any questions about Flutter or the Application when it comes to how it works programmatically I am happy to help! I also have a few questions for anyone who would like to answer them. It comes to CloudSDS and how its REST API works, as I have done work before for Salesforce with a native Android application, but I do not know if Cloud needs a specific API made by them or if I could just pass headers and info to the URL?