• 0

Looking for input on a new project


Question

+Biscuits Brown    833

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 post
Share on other sites

4 answers to this question

Recommended Posts

  • 0
LaP    2,387
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
Link to post
Share on other sites
  • 0
firey    4,153

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.

Link to post
Share on other sites
  • 0
+Biscuits Brown    833

Thanks both, good input - and faster than I expected. I'll certainly look at ionic and WebSQL. 

Link to post
Share on other sites
  • 0
Seahorsepip    610

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.

Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • By Abhay V
      Skype 8.64 brings message reactions' customization for all, share sheet updates on iOS
      by Abhay Venkatesh



      Microsoft has begun rolling out a new version of Skype to all users, bumping up the version to 8.64. This update comes almost two months after rolling out version 8.62 that brought replaceable backgrounds for the desktop and a new grid view for video calls. Version 8.63 was released earlier this month, but only contained bug fixes and no new features.

      Skype 8.64 isn’t a major update either, since it brings just one new significant feature that lets users customize the message reaction picker in the app. Users can now hit the ‘Customize’ icon to tailor all the reaction that they want displayed to quickly access them when reacting to messages. This feature is rolling out to all versions of Skype, including on the desktop and mobile clients.

      The Redmond firm also adds that it has tweaked some keyboard shortcuts to “fix a bug between Skype and Terminal”. In addition to that, Skype for iOS users can now directly share content with Skype contacts from the share tray. Unfortunately, that function is not present for Windows 10 users because it was removed when the React Native-based version of the app was replaced with the Electron version back in June. The share sheet on Microsoft’s OS does not display Skype as a share target.

      The rest of the improvements in version 8.64 bring the usual bug fixes and stability improvements for all the platforms. The company says that the update is rolling out gradually to all users, so it could be a few days till the update shows up for everyone.

    • By eRajesh
      Gboard for Android could soon get a redesign, here's how it looks
      by Rajesh Pandey

      Google has been reportedly working on a Gboard redesign for some time now and the company has finally started rolling it out to select beta testers. In the new look, Google is replacing the Roboto font with Product Sans for the characters on the keyboard which gives the new design a cleaner look. Google has also done away with the gray background, replacing it with white, and given the keys a gray tint. The shift, backspace, number switch, and enter key have a slightly darker gray tint to make them stand out from the other keys.

      Left: Old Gboard look, Right: Redesign The dark theme has also received similar changes which now has a completely dark background and gray keys. From a feature and usability viewpoint, there's no change on that front.

      From the screenshots, it looks like Google has also removed the long-press symbol guides in the new design to achieve a cleaner look, though an option to restore it could be buried in the keyboard settings.



      Google is rolling out this new redesign as a part of a server-side switch for Gboard beta testers and this seems to be an A/B test so not all beta users will get the new look. Nonetheless, this does mean that we should see a Gboard redesign rolling out to more users pretty soon.

      Source: Android Police

      What do you think about the new Gboard redesign? Let us know in the comments below!

    • By Abhay V
      Samsung might expand Galaxy Tab S7's Second screen feature to more Windows PCs
      by Abhay Venkatesh

      Apple debuted a feature in macOS Catalina called Sidecar back in 2019 that let Mac users extend their computer displays to iPads and other touchscreens. This allowed for users to use the secondary touch and stylus enabled displays – like the iPad Pro – as an input device for the Mac, making it easy to run touch-supported apps on devices without support for such input devices.

      Now, a new report suggests that Samsung is working to bring a similar feature to its flagship Galaxy Tab S7 tablets. The feature, internally codenamed ‘Sidekick’, aims to let users extend their Windows PC screens to the tablets and enable the S Pen to work as an active stylus for the devices. The feature is expected to also support different pressure levels from the S Pen.

      Interestingly, the South Korean giant detailed this very feature – called Second Screen – during the launch of its Galaxy Tab S7 devices. However, at the time, the firm claimed that the feature would work with Samsung PCs and that it will be available later this year. It is not clear if project Sidekick refers to the same feature, or if it is part of an effort to bring support to all Windows PCs.

      While the original announcement suggests that the tablets will connect wirelessly to Windows PCs, it is also not known if the capability will extend to support wired connections. This could greatly improve adoption owing to the addition of support for desktop PCs. Many Windows laptops already offer touchscreen and stylus support. Another advantage for PCs is that users can leverage the tablet’s hardware for input while running resource-heavy creative applications on the desktop.

      Second screen will be enabled for the Galaxy Tab S7 and Galaxy Tab S7+ via a firmware update “later this year”. It will be interesting to see how the company pegs this offering, and if ‘Sidekick’ happens to be more than what the company has already revealed.

      Source: Android Police

    • By indospot
      Sony introduces the Xperia 5 II with a 120Hz 21:9 display, 5G, and triple cameras
      by João Carrasqueira

      Sony's smartphones aren't among the most popular nowadays, but that isn't stopping the company from making more of them. Today, Sony announced the Xperia 5 II, and if you're confused, this is closer to the Xperia 1 II flagship than the Xperia 10 II, which was a mid-ranger.

      The Xperia 5 II has the same Snapdragon 865 chipset as the Xperia 1 II, and at least in some European markets, it supports 5G, though that won't be the case in the United States. It also has 8GB of RAM, but it cuts down the storage to 128GB, half of what's offered in the Xperia 1 II, though you can expand that with microSD cards.

      One of the big changes is in the display, which is a 6.1-inch 21:9 Full HD+ panel with HDR, but with a 120Hz refresh rate and a 240Hz touch sampling rate and motion blur reduction. By contrast, the Xperia 1 II had a 6.5-inch 4K display, but it had a standard refresh rate. The smaller display also allows the phone to be more compact, which is one of the selling points touted by Sony. Despite that, it has the same 4,000mAh battery as the bigger brother.



      As usual, the camera setup is a focus for Sony, with three cameras on the back of the phone borrowing technology from the company's Alpha cameras. All three cameras are 12MP, and they have different focal lengths and field of view, ranging from 34° for the telephoto camera to 124° for the ultra-wide camera. It features Sony's Real-time Eye AF, which means you can keep subjects in focus more easily as they move around. The phone can record video at 4K and 120 frames per second so you can get "cinematic" slow-motion video when you play it back at 24 frames per second.

      The Sony Xperia 5 II wil be available on September 29 in the U.S, according to the sales page, and it costs $950. In Europe, Sony only said it's coming in the fall, and it will cost €899/£799.

    • By Abhay V
      Samsung details its first One UI 3 beta release
      by Abhay Venkatesh

      Samsung officially announced the One UI 3 Beta Program last week for developers, letting registered users sign up to receive the first bits of the Android 11-based operating system on the Galaxy S20 line. While the public beta should also be coming soon, the changelog for the first One UI 3 beta release has been shared by users that have received the update.

      The changes seem to bring improvements to customization options, such as the ability to use a double-tap gesture on the home screen to lock the device, tailor the call screen look with custom images, and more. There are multiple improvements being made to inbox apps too, including Samsung Keyboard, Internet, Reminders, Contacts, and more. There are enhancements to the Always-On Display (AOD), lock screen widgets, and camera performance.

      While the changelog is extensive, there seem to be minor enhancements across the OS being brought to the next major One UI version, rather than major changes. Interestingly, one of the limitations of the beta is that users will be unable to use third party themes.

      Here is the complete changelog:

      As mentioned earlier, the release is currently only available to registered users on the S20-series. The South Korean company will eventually open the Beta Program to more devices and users, with it being first available in the U.K., the U.S., China, Germany, India, Poland, and South Korea.

      Considering that this is the first-ever One UI 3 beta release, there could very well be more changes in subsequent builds. It will be interesting to see what other tweaks the firm makes to the skin, not just for the S20 series, but also for its foldable devices.

      Source: Android Police