• 0

Looking for input on a new project


Question

OK, let me start by saying I've been a developer for nearly 2 decades. Professionally I've primarily been involved with line of business tools and services split between VB.NET and C#. Before anyone besmirches VB.NET, that's irrelevant for this discussion. I used the language and tools dictated by my various employers over the years usually having no input on the matter.

 

My side projects however have been a bit different. I published my first astronomy based app in the Windows store in the Windows 8.1 time frame. This app was C# and XAML (what else...) Since then I've published an Android app (still astronomy based but unrelated to the Windows app). The app was a tool for last year's eclipse and was originally written in Xamarin. I eventually recoded it in Android Studio just for the fun of it long after its Play Store release. That code sits quietly in a repo someplace. Most recently I was working on a larger Windows Centennial targeted app that I scuttled after God knows how long having become the victim of endless scope creep. You'd have thought I'd have figured out how to NOT do that after all these years... For the record, both original store apps are unpublished at this time.

 

This brings me to where I am now. I'm looking to recreate and slightly enhance the original Windows Store app but I'd like it to be available on my Windows based desktops, laptops and tablets as well as my Android based tables and phones so I have some cross platform requirements. While these apps are primarily geared toward personal use, I'd publish the app to both the Windows Store and the Google Play Store because why not.

 

There are many here who's input I greatly value as you represent a cross section of developers that have used a great many more tools and frameworks than I have so I'm looking for a bit of guidance, warnings or suggestions.

 

Here are some app specifics to consider

 

  • Once installed, it works completely offline. There is never a need to reconnect. If fact, in most places the app is used, there is often no connections available.
  • It includes a large data set of over 2 million records. These records need to be searchable and sortable on many fields (some lending themselves to indexing better than others).
  • Precess records based on the current Epoch date. This means accounting for the fact that everything you see in the sky is moving and the Earth is wobbling on it's axis means an object that is listed at being at a set of coordinates in the year 2000 (the most recent full Epoch) are no long accurate as the result of 18 years of movement. While the difference is overall small, it still impacts positional calculations for a given location/date/time.
  • For selected records, once precession has been calculated for each item, items will undergo real time coordinate conversions between equatorial and azimuthal will occur with perpetual coordinate updates.
  • The UI is self is rather simple and does not require plotting of stars or object, its strictly a text/data based tool. Mostly search criteria and a sortable results grid.
  • Since this tool is a personal project, I have no timeline to work towards. If this takes a year or more to complete, that's OK.

 

Here are my options as I see them

 

Xamarin Forms app targeting Windows and Android

I like this option as it fits my background but while offering a familiar set of tooling it feels a little heavy handed, like using a sledge hammer to hang a picture. Also, it provides the least amount of learning so I get a new app but little else.

 

PWA

Providing no native functionality is needed (and it really isn't) this seems like the better route on paper but seems to bring its own blend of negatives. First is the question of performance issues managing a multi-million row data set and the real-time coordinate conversion. Second is the baggage a PWA may include to monitor/handle being connected or not. Since this would be a completely offline app once installed, this seems to be adding superfluous code. This requires almost requires a start from scratch learning experience that brings a considerable learning curve that could impact my dedication.

 

Some kind of hybrid

This would be a hybrid of React Native for Android and Electron for the Windows app. I've never used either so I can't speak to the benefits or pitfalls of this option. It would appear to check all the boxes but will come with a very steep learning curve that could take a toll on my confidence to complete the project.

 

So there it is. What route would you take? What are the gains and pain points from your experience that would lead you down one path or the other. I honestly have no real gut preference at this point so I'm 100% open on this.

 

 

Link to comment
https://www.neowin.net/forum/topic/1372542-looking-for-input-on-a-new-project/
Share on other sites

4 answers to this question

Recommended Posts

  • 0
Quote

This would be a hybrid of React Native for Android and Electron for the Windows app.

I'm not familiar with Electron but if you gonna maintain two version of the code and the UI is simple then you might as well use Android Studio or IntelliJ IDEA for the Android version. I made my first "native" Android app last fall using IntelliJ IDEA and frankly it was one of the most pleasant experience i had with an IDE. In term of the quality of the experience as an IDE it's very close to Visual Studio and the learning curve is very small. The doc for Android is very well written and the api is very good. Gradle makes managing Java libraries and dependencies a lot easier too and while there's some learning curve in using Gradle once you are familiar with Gradle it makes building the project a lot easier.

 

I would personally lean toward PWA. I never did a full project with Xamarin but i fiddled with it and was not overly impressed to be honest. I would probably rather build native Android and IOS apps than use Xamarin specially if the UI is very simple. There's a learning curve to PWA (less if you are an experimented web dev) but i don't think PWA are going to die so might as well learn it. Also pretty sure there's React Native support for Windows 10 (edit : https://github.com/Microsoft/react-native-windows).

 

I never used React Native but i used ReactJS and it's very good.

 

Here's an interesting link about the different technologies : https://belitsoft.com/react-native-development/react-native-vs-xamarin-vs-ionic

 

 

Edited by LaP
  • 0

Everything I do now is PWA. Using a framework like ionic will do the job you want.  You can use WebSQL for storage so large records aren't an issue. You can process what you need to on the fly.  Can compile native for android/ios/windows using Cordova, and can build for web with service workers for the true PWA Feel.

 

I've done many apps using Ionic with full offline capabilities. Javascript is at a point now where there is a lot of native functionality, so there's really no need to 'fluff' or over-code aspects to handle offline. It just works.

 

https://ionicframework.com/

 

That's just what I would go with. Been using it professionally for 2 years now. It's great in that you have one code base, one project, but can have full cross platform support.

  • 0

Personally I've recently done a project in React Native.

 

It's gives complete freedom but at a large cost, it's rather complex when things don't work as expected and you end up writing more native code then expected.

 

I'm starting on another project with React Native that also requires a web app, for that I've opted to use React Native Web so everything is still largely one codebase.

 

React Native Windows/MacOS/Desktop are other projects I'm interested in to work with in the future but for now I plan on bundling React Native Web with Chromium when a desktop app is required.

 

Flutter is another framework I'm planning to use in the future.

 

Biggest difference between React Native and Flutter is how things are rendered, React Native uses the view system of the underlying OS and Flutter renders everything itself like a game engine.

 

One of the main issues with React Native is that things render sometimes differently between platforms, this is not the case with Flutter.

 

Besides that are the obvious language differences between the different framework but those are expected.

This topic is now closed to further replies.
  • Posts

    • Same Internet Archive seemed to grab the new version https://web.archive.org/web/20...d/Setup_MakeMKV_v1.18.4.exe
    • Windows 11 KB5094126, KB5093998 bugging out Office apps but it may not be Microsoft's fault by Sayan Sen Microsoft last week released Windows 11 KB5094126 and KB5093998 as the latest Patch Tuesday updates. Following that the company also published the accompanying dynamic updates under KB5094149, KB5095971, and KB5094156. Although the tech giant did not acknowledge any major problems, some users online reported various issues ranging from OneDrive and Dropbox access problems, BitLocker recovery lockouts, to blue screens and BSODs. You can read about them in this dedicated piece. While there is still no confirmation about those problems from Microsoft the company has admitted to another bug which we did not report on. The tech giant has confirmed it has received reports of an issue in which certain third-party applications may be unable to launch Microsoft Office apps or open Office documents after installing the Patch Tuesday. This affects both Windows 11 as well as Windows 10. The company says the problem impacts a subset of applications that rely on OLE (Object Linking and Embedding) automation to communicate with Microsoft Office programs. According to Microsoft, affected scenarios involve third-party software attempting to open Office applications or documents from within their own interface. In such cases, the Office program may fail to launch altogether, or the requested document may not open. Oddly there may not be any error message, which probably makes the issue difficult to diagnose. The bug affects several Office products, including Word, Excel, PowerPoint, Access, and other apps in the Microsoft Office suite when they are launched through the affected software. These include tax and accounting software such as CCH Engagement and Workpaper Manager, dental practice management solutions like Dentrix and Softdent, as well as the popular research and reference management tool Zotero. Microsoft adds that other applications using similar Office integration methods could also experience the same problematic behavior. To understand the issue it is important to look at OLE, the Microsoft technology involved. OLE allows different applications to work together and share data, while its Automation feature lets one program control another. Thus this enables third-party software to launch Microsoft Office apps, open documents, and perform tasks automatically without requiring users to switch between programs. Because many accounting, healthcare, research, and business applications rely on OLE automation to interact with Word, Excel, PowerPoint, and other Office apps, any disruption can break those workflows. As a result, affected software may be unable to open Office documents or launch Office applications even though the programs themselves continue to work normally. At the moment the company has not provided a permanent fix though it has confirmed that engineers are actively working on a resolution, which will be delivered through a future Windows update. As such additional details will be shared once more information becomes available. In the meantime, Microsoft recommends a simple workaround for affected users whic is to open the Office application or document directly rather than launching it through the third-party program. For enterprise customers and organizations managing larger deployments, Microsoft says an additional mitigation is available. Admins experiencing the problem on their managed devices are advised to contact Microsoft Support for business to obtain and apply the workaround.
    • It saddens me when cars are such dull colours now. Mine is bright metallic blue and I absolutely adore it for standing out in contrast to that depressing backdrop of traffic.
    • Sparkle 2.20.0 by Razvan Serea Sparkle is a free, open-source Windows optimization tool designed to make your PC faster, cleaner, and more private. With Sparkle, you can easily debloat Windows by removing unnecessary apps and services, disable Microsoft tracking to enhance privacy, and apply performance tweaks to boost speed. Its cleaner removes junk and temporary files, while every change is safe and fully reversible. Sparkle also features a modern, user-friendly interface with automatic updates, making system maintenance simple. Explore over 39 tweaks, from disabling telemetry and hibernation to optimizing network and game settings, all aimed at customizing and enhancing your Windows experience. Sparkle supports Windows 10 and 11. Sparkle 2.20.0 changelog: Debloat Tweak has animated border New homepage loading UI New Tweak Modal (Markdown Supported) Refactored GPU Detection Added Tests with vitest Added foobar2000 to apps Added Localsend to apps Updated Modal Styles Added styles for disabled inputs Added Animated Border to debloat-windows tweak Bumped dependencies Refactor System info logic for speed Tweak info modals now support Markdown Added Clear System info cache to settings Redesigned Home Page Loading UI Changed Some Icons around the app Download: Sparkle 2.20.0 | Portable | ~100.0 MB (Open Source) Links: Sparkle Website | Github | Screenshot Get alerted to all of our Software updates on Twitter at @NeowinSoftware
    • lol it was a typo, fixed! haha imagine an actual 4TB Gen4 NVMe for $40 in 2026
  • Recent Achievements

    • Reacting Well
      Dys Topia earned a badge
      Reacting Well
    • Conversation Starter
      NovaEdgeX earned a badge
      Conversation Starter
    • One Year In
      Console General earned a badge
      One Year In
    • Week One Done
      Twozo Technologies earned a badge
      Week One Done
    • One Month Later
      Twozo Technologies earned a badge
      One Month Later
  • Popular Contributors

    1. 1
      +primortal
      517
    2. 2
      +Edouard
      184
    3. 3
      PsYcHoKiLLa
      106
    4. 4
      Steven P.
      88
    5. 5
      ATLien_0
      68
  • Tell a friend

    Love Neowin? Tell a friend!