About Highway Radar for iOS and other non-Android platforms

alloy00

vMax
Premium Plus
Lifetime Premium
Advanced User
Joined
Dec 4, 2011
Messages
2,876
Reaction score
3,379
This is really cool. I can't wait to buy the app :)
 

chapRD

Intermediate User
Joined
Nov 22, 2019
Messages
403
Reaction score
796
This is awesome, can't wait to try it out!
 

JaySC

Learning to Fly
Beginner User
Joined
Jan 29, 2021
Messages
55
Reaction score
355
App is now calling out/receiving crowdsourced data for a box based on current location and converting the response into usable alerts. Spent a while cleaning the code up and learning about how to store said alerts in a usable way (nerd alert: have to persist to a cache on the main thread from the asynch network call, for those who are curious). This is necessary before I can start populating the map with dynamic alert markers. Once this is complete I'll be able to upload a screen video of the app starting up and loading all of the surrounding alert markers.

I'm running the Dustball Rally main event in July, so my goal is to have this ready for that event as a strenuous/final beta test. Been making good progress, but I don't necessarily expect to be able to keep this pace constant from now until then, so please bear with me. Likely won't be working on it for the next few days.

I'm sure that a lot of you don't care about these updates, but they help me to stay accountable. I'll likely slack off to a less-frequent interval so as to not clutter up the thread, not hold my feet to the fire every night or two, and have more to report when I do.

All in all, it's coming along and I'm excited about where it's headed!
 

812

Learning to Drive
General User
Joined
May 26, 2021
Messages
5
Reaction score
9
I've been asked many times about an iOS version of Highway Radar, so in this post, I want to summarize my thoughts about this and answer all possible questions that might arise.

TL;DR I have no plans of making an iOS version; however, I'll be happy to help with iOS version development if someone wants to do so.

As you might see, Highway Radar is 100% free, has no ads, and doesn't sell your data, and for now, I don't have any plans on adding any of those. So you might ask why I am even working on this. The answer may sound a bit egoistic, but I work on it because I simply want to have the best passive CM app on the road for myself. By spending little time on polishing and publishing, I can get plenty of useful feedback I can incorporate in the application so I get a better app for myself. Also, having public responsibility makes the app much better, which I also personally benefit from. This means that I only work on things that are somehow useful to me.

That said, let's move to the iOS version. I'm an Android user, so having an iOS version would bring only subtle benefits for me. I'll get more feedback on the server-side of the application (aircraft, heat maps, risk scores, road graph). However, maintaining another version of the app would take a significant amount of time. I don't want to spend it on something I will never use. Even more, considering I'm also a Windows person, I need to purchase at least ~$1500 worth of equipment (iPhone + MacBook + Apple Dev License) only to start the development.

It is possible to charge little money for iOS version (say, $10); however, currently, I'd prefer investing the time in new Android features. There are still many things to do.

Now some good news: Highway Radar is a very lightweight application, and quite a significant part is separated from the platform. Most of the logic either work on my server or gets precomputed on my powerful home machine. For example, I compute heat maps and risk scores, assemble camera database, and road graph every week. Then this data is served from my server in a format that is super easy to parse and visualize. All aircraft operations (fetching, merging, analyzing, and filtering) also happen on my server. Such an approach reduces the load on the mobile phone, reduces data usage, and allows me to update algorithms without updating the app. Except for fetching crowdsourced alerts, the Android application only visualizes data already prepared on my server.

And the best part is that I'd be happy to share this data with anyone (considering all credits are in place). Moreover, I'm ok with someone developing an iOS application called "Highway Radar" if it would have all the features of the Android app. I'm also happy to share algorithms I use in Highway Radar (e.g., pulling data from crowdsourcing server or estimating the severity of the aircraft alert).

So if anyone wants to build an iOS version, please reach out to me, I'll be delighted to help with this project.
@ferius I have been a lurker for quiet a while. I had a setup with a radar detector + laser for quiet a while. And I generally go under the speed limits on 99% of the days. Also an iOS user. So never really felt the need for Highway Radar even though I do have an android phone I can use. Circumstances have changed. No radar or laser anymore. So I want to get Highway Radar working on the iOS. I have developed software professionally (long time ago) and now as a hobby for close to 20 years. I know there is an effort underway to port it to iOS. However, I have a lot of time on my hands (changed circumstances) and I am working on my programming skillsets (backend and frontend). Porting Highway Radar seems like a good way to upgrade my skills. I am not interested in monetizing the app. But I do want the app, ASAP on iOS. Do not want to keep an Android device in addition to the iOS running. And will be happy to share the source code with anyone (with your approval) or if it has to stay closed and shared only with others working on the app, I am happy to do that as well. I understand if you want to only have one iOS app. Please let me know.
Edited:
Don't plan on using swift. I have some ideas on how to make the code cross-platform and less intensive to develop. So more of an iOS++ implementation.
 
Last edited:

JaySC

Learning to Fly
Beginner User
Joined
Jan 29, 2021
Messages
55
Reaction score
355
@ferius I have been a lurker for quiet a while. I had a setup with a radar detector + laser for quiet a while. And I generally go under the speed limits on 99% of the days. Also an iOS user. So never really felt the need for Highway Radar even though I do have an android phone I can use. Circumstances have changed. No radar or laser anymore. So I want to get Highway Radar working on the iOS. I have developed software professionally (long time ago) and now as a hobby for close to 20 years. I know there is an effort underway to port it to iOS. However, I have a lot of time on my hands (changed circumstances) and I am working on my programming skillsets (backend and frontend). Porting Highway Radar seems like a good way to upgrade my skills. I am not interested in monetizing the app. But I do want the app, ASAP on iOS. Do not want to keep an Android device in addition to the iOS running. And will be happy to share the source code with anyone (with your approval) or if it has to stay closed and shared only with others working on the app, I am happy to do that as well. I understand if you want to only have one iOS app. Please let me know.
Edited:
Don't plan on using swift. I have some ideas on how to make the code cross-platform and less intensive to develop. So more of an iOS++ implementation.
Hi 812! Really awesome that you're interested in pitching in. I do hope that, despite posting this message here rather than in my existing iOS project thread, your wish is to pitch in rather than build a competing app. Competition definitely drives innovation, though I think teamwork is probably the better approach.

A quick note in response to your thoughts: My underway effort is, as it seems you may have read, a native implementation using Swift. There's not a need for multi-platform compatibility since ferius' Android app is well-established and quite far ahead of any ground-up effort for iOS. Given that, the compromises that come along with multi-platform frameworks/implementations don't seem like a good trade off here - you're not getting anything in return (since typically the tradeoff is not having to duplicate too much effort, which is moot here). Ferius' app is also native Android, as far as I understand, which means that there will be a necessary effort to port his existing code in order to benefit from a multi-platform framework in the future. It makes more sense to expend this effort on a native implementation since 1. it generally provides a better experience for both user and dev, 2. ferius plans to continue developing and supporting his Android app, and 3. I plan to continue developing and supporting my iOS app. It may also behoove ferius for us to save effort on the client so as to be able to spend time contributing to his server-side efforts, which benefits both Android and iOS clients.

As you may have also seen, I've had my project on the back burner since my day job has been ramping up to a big launch. Maybe this is the kick start I need to get back on it! I'd be happy to chat with you about what I'm doing and how, if you're interested.
 

812

Learning to Drive
General User
Joined
May 26, 2021
Messages
5
Reaction score
9
@JaySC My vision for the app is slightly different from yours. I am interested in a serveless backend (hopefully one that is cloud agnostic for the most part to allow moving between the cloud providers on a dime). The grand vision is to enable other apps to use API that are available from the backend, to access some features or all features. I am not going to restrict the API or monetize the API as well.

My vision for the front end is to use flutter. Flutter looks and behaves like an iOS app on iOS. I really don't want to use Swift and design a bunch of OS specific stuff to interface into the server less API.

The app should be available on windows, mac or the web as well. Why limit it on iOS or Android? If I want to plan a trip, I should be able to do so on my laptop or browser on any phone. Competing with the Android app is not why I plan to use Flutter. The original app will always be the gold standard. I just see this as a much bigger and broader way of expanding what can be done with the data. Hopefully, I will also get good at designing good API that other people will use to do whatever they like.

You already have a head start on me so I don't expect to catch up too fast. Always happy to share whatever progress I make. I hope this answers your question on what I want to achieve.
 
Last edited:

812

Learning to Drive
General User
Joined
May 26, 2021
Messages
5
Reaction score
9
Depends on @ferius. I am happy to do either a BSD or a less restrictive license if BSD is not enough. My skin in the game is to get better at what I do and of course the end product I can use on my iOS device or web browser. Not for or against FOSS. Not something I am hung up on.
 

Deacon

TXCTG
VIP
Premium Plus
Lifetime Premium
Advanced User
Joined
Nov 13, 2016
Messages
14,744
Reaction score
21,095
Location
Hill Country, TX
Not for or against FOSS. Not something I am hung up on.
I have no clue what the open source world is like—if any—in the context of iOS. It would be pretty cool, though, if there were no concerns about someone taking the code and going home. It took years before YaV1 to change hands, and even then it never went any further. There are a lot of potential positives about making an open source project, but additional potential headaches go with it. Especially given that it would be best to keep an app like this under Apple’s radar (dammit pun not intended), it might not help.
 

JaySC

Learning to Fly
Beginner User
Joined
Jan 29, 2021
Messages
55
Reaction score
355
@JaySC My vision for the app is slightly different from yours. I am interested in a serveless backend (hopefully one that is cloud agnostic for the most part to allow moving between the cloud providers on a dime). The grand vision is to enable other apps to use API that are available from the backend, to access some features or all features. I am not going to restrict the API or monetize the API as well.
This set of APIs sounds to be exactly what ferius has already done. I'm integrating my app with his APIs to retrieve lots of data that enables the core feature set. I'd recommend chatting with him privately so as to ensure that you're note duplicating effort. It probably makes sense to simply to work on contributing/building on to what he's already stood up since there is already a wealth of data available via his APIs.

For the record, I work for one of the world's largest cloud providers (and have done some iOS development for the same) so can provide a bit of guidance on that front if needed. That does, of course, make me a bit biased but generally for a product (or suite of products) that are not enterprise-scale I don't believe that being cloud agnostic needs to be a primary concern (since you won't have a need to build/run across multiple cloud providers simultaneously). I'd find one you like and go with it, and of course you can stick to running your code on basic containers if you're concerned about portability (as opposed to, say, something like AWS Lambda or Azure Functions).
@JaySC
My vision for the front end is to use flutter. Flutter looks and behaves like an iOS app on iOS. I really don't want to use Swift and design a bunch of OS specific stuff to interface into the server less API.
I suppose each to their own, but the above points re: multi-platform vs native still hold true with Flutter. Maybe not a big deal in this instance, although it would be interesting to see the performance difference as there are a lot of calculations going on in the background of this app. "OS specific stuff" is not necessarily a bad thing but I see where you're coming from; if you have future apps planned on other platforms then there could be some saved work here.
@JaySC
The app should be available on windows, mac or the web as well. Why limit it on iOS or Android? If I want to plan a trip, I should be able to do so on my laptop or browser on any phone. Competing with the Android app is not why I plan to use Flutter. The original app will always be the gold standard. I just see this as a much bigger and broader way of expanding what can be done with the data. Hopefully, I will also get good at designing good API that other people will use to do whatever they like.
You must have something very different from the existing paradigm/purpose of Highway Radar in mind. Care to share? Sounds like maybe some route-planning features? There aren't currently any features that would be compelling outside of a mobile client since it's really only useful while in motion.
@JaySC
You already have a head start on me so I don't expect to catch up too fast. Always happy to share whatever progress I make. I hope this answers your question on what I want to achieve.
Yeah, thanks for sharing! I really need to get a move-on with my implementation. Your answers have really just sparked more questions, haha.
Post automatically merged:

I have no clue what the open source world is like—if any—in the context of iOS. It would be pretty cool, though, if there were no concerns about someone taking the code and going home. It took years before YaV1 to change hands, and even then it never went any further. There are a lot of potential positives about making an open source project, but additional potential headaches go with it. Especially given that it would be best to keep an app like this under Apple’s radar (dammit pun not intended), it might not help.
+1, I would not want this to move into the realm of open-source simply because there are some things that we need to keep a bit of a mystery. I do understand the upside of OSS, and I am monetizing to be fair (although I believe that people would donate even with it being open-source), but I think that ferius will agree with this position. There's a bit more risk involved for all of us than I'm comfortable with if we open it up publicly.
 
Last edited:

812

Learning to Drive
General User
Joined
May 26, 2021
Messages
5
Reaction score
9
No I have no plans on what the API data will be used for right now other than the iOS (with potential to work on other platforms). Having an open API which other apps can access still does not expose more than the calculated results, which are already available on the Android app. If that is a sticking point. The whole idea is I might be horrible at frontend design or someone else might want to integrate other data from other sources to do something wonderful and new. Enable that functionality by exposing the API. Since I will be hosting the API and data it should protect other people from my stupidity. My risk entirely on the API and server.

Cloud-Agnostic, because of vendor lock-in. Since, I do not plan to monetize, I don't want to pay a lot on bills if the api usage takes off and the serverless costs add up. That was just an architectural choice.

My plan is to offload as much of the calculation to the cloud as is practical. So the algorithms can be hidden behind the API if that is a problem. Event driven design should allow updates to be pushed from the server rather than being calculated on the device.
 

ferius

More arrows please
Premium Plus
Lifetime Premium
Advanced User
Software Developer
Joined
Jan 27, 2019
Messages
666
Reaction score
2,653
Location
Seattle area, WA
Hi @812, @ferius is here.

I always support initiatives towards new CM applications. I went through last messages in this thread, and have some thoughts here:
  • I see, you're saying a lot about building a backend side. I can provide the one I already have for Highway Radar, no problems here. It has everything except crowd-sourced alerts - those are much easier to implement directly on the client. At the same time I see your vision towards having everything open. I don't think fully open-source it is feasible for CM applications -- it is either extremely difficult or very expensive to write a good CM application without violating any ToSes or using closed unpublished APIs, which is generally expected if not for all, but at least for open-sourced applications.
  • You mentioned about trip planing. Highway Radar is 100% not about that - it is an application to give you real-time alerts. Using risk scores, actually, can help with planning a bit; however I'm not sure how useful are they alone. I mean having another application for planing purposes might work, though I don't see any good use cases for it. If you do, I will support a development for an application like that one.
  • I'm very careful about sharing my source code, and don't share the project entirely. There are several reasons for this. However, if there is anything unclear, or difficult, I'm always ready to support or share some code snippets. Also, porting Highway Radar as is, isn't very reasonable, the code is very platform-specific now.
  • A little note regarding event driven design -- let me give you a little breakdown on the different parts of HwR:
    • Aircraft - event-driven design works great here - that is exactly how it works now, a backend aggregates air traffic data for the entire worlds, and pushes an area around the driver to them.
    • Police / hazard - aggregating entire world on one server with a reasonable update frequency, and without severely violating ToS and having a huge risk of getting banned is very difficult. Fetching small area around directly on device is much easier. It is technically possible to request and push data on demand, but in this case a custom backend doesn't add any value. So I don't see any benefits from using this design here.
    • Heatmap, risk scores, road graph, cameras - this is all static data, and currently served as slippy tiles, then cached on device. Adding pushes here seems to be quiet an overkill here.
Overall, if you'd like to start with the project, I can only support this. If you would like any assistance from my side, please ask.

If you need access to my APIs, I'd be happy to provide it; however, I would ask for a working prototype with police alerts and heat maps first - I can provide some guidance on how to obtain that information - please PM me for that.

Also, considering you'd like to seriously move forward with you application, I would suggest creating your own thread.

And one more thing - @JaySC is planning to release his first beta in July. There might be a good idea to wait and see, there is a good chance that app will fully satisfy your needs. No pressure here, just sharing the timeline I'm aware of.
 
Last edited:

Discord Server

Latest threads

Latest posts

Forum statistics

Threads
96,476
Messages
1,468,301
Members
24,739
Latest member
i1dave2
Top