Functional Reach TacPad - Mobile Project

Would you like to be notified when beta testing starts?

  • Yes, and I have an Android device

    Votes: 6 75.0%
  • Yes, and I have an iOS device

    Votes: 1 12.5%
  • Yes, and I have both Android and iOS

    Votes: 1 12.5%
  • Thanks, but no thanks

    Votes: 0 0.0%

  • Total voters
    8
  • Poll closed .

Fallen

Active Member
I've been wanting to do a Carter build for several years now, but as part of that I'm working to get back in shape, so the bulk of that build hasn't started yet. Carter has that TacPad on his forearm, and it's always been in my mind that I wanted more than just a static image in place there. Since I have the time before I start on the armor parts of my build, I'm using this opportunity to start the process of making the TacPad something more. As some of you may know, I'm a mobile developer who does primarily iOS but also has experience developing for Android. I want to take that experience and develop a mobile app that I and others can use as a TacPad in the style of Reach with functionality.

I will warn you, that there will likely be some technical jargon in my posts. I'm a nerd, and I love all of the problem solving that comes with writing code and creating functional apps.

The Primary Goal
Build mobile apps for iOS and Android in the style of Reach that can be used to provide useful information throughout conventions.

Ultimately I want to make something that will track and display my health information throughout the day, give me reminders, and ideally be able to control various planned systems in my suit when I build it. I also want to make the app something that I can share with other members to set up and use for themselves with minimal effort.

MVP
First up I need to define what is MVP (Minimum Viable Product) for this project. My stretch goal has a lot of problems to solve and systems that I have never written code for, so I need to split things up into features and define a prioritized order to start getting things done. For this I've defined MVP as having the main UI based on references provided by TurboCharizard but with some kind of function rather than a static image. I've decided at this point to take what looks like 4 buttons on the left side and sync them up as a mini soundboard, and add some hard-coded information in what looks like a smaller info view within the greater interface.

The Technology
iOS: Swift, supporting iOS 13+
Android: Kotlin, support Android 8+ (Oreo+)

Hoping to be able to use some Kotlin Multiplatform to share some of my business logic across both iOS and Android.

Testing
I'll be doing private testing that I'll open up to any members who want to be involved sometime after MVP. Feel free to PM me if interested.

Shout Outs
TurboCharizard for providing images to reference creating the base interface
RandomRanger for additional functionality ideas

Published Content From this Project
GeometryReader in SwiftUI
 
Last edited:

Fallen

Active Member
Progress Tracker
kanban_board.PNG

Links
Update 1 - The View
Update 2 - Heart Rate
 
Last edited:

Fallen

Active Member
Update 1
MVP is nearing completion. As of now both projects for iOS and Android are created with the basic TacPad layout. The blue "display" is holding some hard-coded placeholder values, and the four buttons are linked to 4 sound clips of Carter that I added to give them some functionality. Eventually I want those to switch value for my purpose, but just an idea of something that could be done for someone who maybe doesn't have lights and fans installed that they want to control from the TacPad.

Screen Shot 2020-08-31 at 2.36.31 PM.png

Top: Pixel 3 on Android 10
Bottom: iPhone XS on iOS 13​


Recorded on iPhone XS. I didn't bother setting it up to show clicks, so I tried to hold on buttons a little longer. iOS by default darkens the text slightly on press.

And for reference screenshot of the forearm from the game.
forearm_left_top.png
 
Last edited:

RandomRanger

Armory Assistant
Community Staff
\0/ It's got a thread! Progress is going quick, loved the pics in discord. Once I reach that stage in my suit I'll probably be taking a look at the code :)
 

Fallen

Active Member
Not a big update to give, but I noticed a couple of issues with the layout on especially smaller devices on both iOS and Android. Last week I spent rewriting the iOS layout and this week the Android layout. Android is much harder to make exactly right because there are so many devices and screen sizes with all the different manufacturers. As a developer, the limited options for iOS devices is actually kind of nice for testing.

Next up is to start displaying some amount of health data. I've never worked with HealthKit or Google Fit before, so I'm looking forward to learning about what data they provide that could be useful and how they work on a technical level.

What I want to know is what are the types of health data you most want to be able to see if you were using this tacpad? I'm thinking of what will be displayed in the little mini-display (where the 61bpm is on update 1 images).
 

PlanetAlexander

Active Member
Thinking of what it's like in heavy, hot armour, what about body temp and hydration levels? Don't know how possible it is with that technology.

Oh, and some cruel, punishing reminders to eat/drink would be SUPER helpful
 

Fallen

Active Member
Added a poll to get insight into whether or not people are willing to help beta test the app.

iOS running iOS13+
Android running Android 8.0+

I just need to know a rough estimate of how many are willing to test. I'll likely post a link to join the beta group when the time comes.
 
Last edited:

Fallen

Active Member
Update 2 - Heart Rate Monitoring Begins

I haven't had a lot of time this past month to work on this project. Got onto a short project at work with an extremely aggressive timeline. We're talking building an MVP version of an app to be deployed in ~1month. Not a lot of time to go from idea to design to completion especially given there were several unknowns when starting. That should be winding down soon, and I got the chance to get a little bit of side project work time.

I'm diving into the HealthKit stuff on iOS in order to grab heart rate data and afterwards steps. In what I played with yesterday added a settings screen to be able to enable/disable showing heart rate as well as authentication to track heart rate information. I'm also able to start querying the heart rate data, but am focusing on fetching on some set time interval rather than continuous tracking. What I have today is a continuous track where if I display everything you get a rapidly changing heart rate. Not ideal. Or I grab the last item and get the same value every time. Also not ideal. Hoping to play with it more as I start to get some downtime at work again especially as my work project winds down.

2020-10-28 09.32.29.png



2020-10-28 09.32.34.png

Bad news for you Android users out there that MIGHT want to even just play with this, I've decided to focus entirely on getting up through the Pi integration on just iOS for awhile so that I can work out any issues on a tech stack that I'm most experienced in and what phone I primarily use day to day. Afterwards I promise to bring Android back up to parity with iOS. In fact remind me if I don't.

Video of current SPIKE behavior


*Update:
Decided to run the app for significantly longer and see if it ever updated the heart rate. It does, but at about 10minute intervals. More research into HealthKit and I learned that if I rely solely on HealthKit's information without a custom watchOS component 10min is about how long it will take to see any updates to the heart rate and/or step counters. Guess I'm building a watchOS app too with a minimal UI to just communicate back to the iOS app.

In other news my work project is officially over after today, and I'll be heading back to the bench likely for the remainder of the year. Hoping to do self-learning/content creation rather than a bench team, and if that works out should start seeing more progress updates on this project.

My goal is to have communication with a Pi turning on/off fans and/or lights by the end of the year.
 
Last edited:
Top