Has anyone tried using Dash Plotly to make a mobile app? - mobile

Has anyone tried using Dash to make a mobile app?
I found it very useful to browse the Dash page on my phone, but I don’t want to enter Urls and log in every time.
And if it’s a mobile app, whether embedded or native, there are more features that can be implemented.

From my experience with dash, its not a current feature unfortunately.
To clarify plotly and dash have two different types of interaction. The vanilla plotly graphing library allows you to hover, zoom, pan,..etc. Dash is more about complete interaction between multiple graphs.
Dash is a web app framework, so it can't be a native app as the interaction capabilities come from the web app functionality. People have built hybrid apps using dash but the requests still go through your own dedicated dash app, which is hosted through the web browser. So in my perspective you're just doing redundant work that is done by plotly. That being said dash code can be made mobile friendly so (in my humble opinion) that would be a better route. But from colleagues that have explored this route, the click, hover, select events that are what makes dash so appealing, do not work very well without the precision of a mouse cursor.
Last point, if the vanilla plotly interaction is the only degree of interaction needed then those graphs can be embedded into a native app because they are offline.

It could be done, though perhaps there not an out-of-the-box solution for that purpose. But Plotly Dash is built with ReactJS, of which the "mobile version" is React Native.
ReactJS vs React Nativeenter link description here.
Having said that, consider not using a mobile application that you have to actually download (i.e. an APK) but instead a web app suitable for mobile devices. Compare it to having the Twitter app installed vs opening Twitter.com on your device. It "feels almost the same", and you don't have to download anything.
I recommend reading about Progressive Web Apps.
Example of PWA.

Related

Cross platform SDK

I am new to React Native. So here goes my scenario:
We need to create a new SDK that would be embedded into multiple technologies: React Web (JS), React Native APPs, iOS Apps (Swift and Obj-c), and Android Apps (Kotlin and Java). This SDK will offer:
APIs to get access tokens (issued by our corporate authenticator) so that the APP can talk to our API Gateway; something on the lines of getCurrentAccessToken();
Standard screens for login, Change Password, Forgot Password, OTP, etc; The UI should look and feel NATIVE to each target platform that it will be running on (Web, iOS, Android). Transitioning from a Native Screen to SDK's Screen should be smooth.
Be small (package size) and have OK/Hermes performance on both API Calls and Screen loading times (it doesn't need to be as fast as Native, as this SDK will be used once or twice every time the user starts the main APP);
I have checked boden.io (C++) but it would not work on WEB. It might still be an option (having 2 SDKs, one for WEB one for Mobile) so I didn't rule it out yet.
Is such a thing feasible in React Native? If feasible, is it a good idea?
PS: I know I would still need native binds/wrappers for each technology so that the SDK looks NATIVE to the caller, but that would be a minor issue.
Thanks
You can use go lang and gomobile to build the sdk for iOS, Android and Web.

QooxDoo Application Types

I am new to qooxdoo framework I have few questions,
In all the sample QX.Website apps provided there was no QXTheme defined in config.json, is it like themes are used in a different way instead of config.json or how?
Is qooxdoo is like replacement for jquery or will be used together with jquery. Since jquery has lot of plugins available. I am not finding qooxdoo as easy as jquery
3.QX.Desktop is desktop feel like website or it is a desktop application itself, same for qx.mobile too?
I am working on a POC it will be of great help.
QX Website
Is cross-browser library that can help you build lightweight websites.
It main features are DOM selector, BOM and HTML abstraction layers, cross-browser keyboard and pointer events. As well some network abstractions for REST service and web storage. Οther functionality is provided through modules. There is no theming option because theming is done by regular css.
You can see an overview of the modules here.
QX mobile
Is the attempt to enable developers use the same principals as in qx.desktop to create web apps that have that feels likes a native app or you can simply use cordova or something else to ship your application inside any store.
QX Desktop
Is the way to go if you are building a single page application.
It has the feeling of a desktop application but this is only theming and it runs in the browser it doesn't run on desktop.
TIPS
If you want to build a mobile app don't use qx mobile as I don't think is maintained appropriate anymore.
If you would like to have a more modern theme checkout the clean theme from sqville.
If your project have a lot of forms and think to use qookery as it will be easier. (Shameless plug I'm one of the contributors of qookery).

Ionic Framework and Mobile Web

The problem: build a somewhat complex form that submits data to MySQL+PHP back-end. Requirements include:
Accessible from browsers running on mobiles, tablets and desktops
Must be completely platform independent; works well on Edge, Safari, Chrome, and other modern browsers.
Must be implemented so that in the future, native versions can be implemented using the same code-base.
Based on my research, Ionic seems to be the best fit. However, I don't see anything about using Ionic for web-apps on their official website.
Questions:
Can Ionic be used to meet the above requirements? If yes, what is the best way to use Ionic for web-apps? Is there an official guideline from Ionic for this?
How else would you go about meeting the above requirements if not using Ionic?
Thanks.
Ionic is built for developing mobile apps / progressive web apps. If you are looking for something which can be accesses through browsers Angular is the best option. Progressive web apps also will be something you can look into. Except for native functionalities in mobile and routing in browsers , angular code will be reusable.

Ionic framework: Single code base for various mobile devices (iOS, Android, phones, tablets)?

I am planning to develop a mobile app that completely duplicates the features that my web app offers. The web app is running on AngularJS + Django + Django REST Framework. The backend is essentially an API server, so it is pretty much ready to support a mobile frontend.
Although I know my stuff in the web development space, mobile development is completely new to me. With no prior mobile development experience and the lack of resources (as always, fund and time), HTML5/SASS/AngularJS are my best friends, so Ionic Framework + AngularJS seems to be the most viable solution for my situation.
A major requirement of this Ionic app is that it needs to support various mobile devices, ranging from iOS to Android and from phones to tablets.
With different design guidelines for iOS and Android and the different screen sizes between phones and tablets, could this requirement be met with one single code base?
If yes, what are the cons or limitations? Is this a common approach?
If no, what's the common approach in the Ionic world in supporting various mobile devices?
I use the same codebase for my Ionic hybrid app deployed as a native Android and iOS via Cordova and additionally viewable as a mobile website.
Nearly every component/layout in Ionic scales nicely between mobile and tablet devices (in some cases, you may wish to make concessions for tablet - font scaling, content adjustments etc which can be achieved by using something like mobiledetect.js and CSS media query targeting), and between devices such as iOS and Android scales with no issues at all.
You even get some inherent coolness with Ionic components such as the modal popup whereby on iPad/desktop it displays as a modal popup in the center of the screen, but on phone it resizes to take up the scale of the entire screen, looking simply like a full screen page.
Hope that helps get you on your way.

What are the drawbacks when using Ionic Framework or OnsenUI only as hosted webapp

We plan to create a hosted web app with AngularJS. As UI Framework we found Ionic and Onsen to work well with AngularJS. Both of this frameworks promote that they are made particularly for Hybrid Apps. But us I understand correctly, both frameworks are based on web technologies. So what are the drawbacks when using the suggested UI frameworks for non Hybrid Apps? Is it mainly the Browser support?
Thanks
Well, both Ionic and Onsen are made particularly for Hybrid Mobile Apps. You just won't be able to use it even for tablet apps without customization (If I am wrong, please correct me) just because they target the limited viewport and incorporate phone UX patterns.
Also, they are made with PhoneGap in mind (the apps will be hosted in the WebView component), and addresses some common WebView problems, e.g GPU acceleration for better performance.
If you need just some UI framework for a simple Web App you'd better have a look at Twitter Boostrap or Zurb Foundation. For a complex case you may even consider Sencha instead of Angular.
There is a part of Ionic that expects the Cordova/PhoneGap Device plugin to be installed. It helps with displaying on Android and iOS appropriately, as well as increasing the size of header bars for iOS 7. That wont be an issue for web though, since you'll have the browser's "chrome" taking up that space.
You may loose some of the buttery smoothness in things like page transitions because the template files need to travel over a (often cellular) connection to the internet, but your app will most certainly work if built with Ionic or Onses over the web.
Things changed considerably over last few months.
Both frameworks now support splitview so they can be used for tablet devices. Subjectively Onsen UI has a better support (it is much more configurable), but Ionic is also not bad. This can translate to smaller desktop browsers screens.
You should also consider that Onsen UI has a dedicated desktop browsers support (all web-kit browsers). Ionic framework will also work on desktop browsers, but it was not fully tested or optimized for such environment.
Biggest problem here is that both frameworks were never meant to be used on larger screens. They look oversized and bloated. If you ever worked with jQuery Mobile (on desktop browsers) you will understand this problem.
There is nothing stopping you from doing that - it might even be a smart approach for a mobile first design approach. The advantage is that you could rapidly iterate an idea an then invest in a native or platform specific app depending on user feedback/metrics.
The main drawback would be the user expectations for your UI and application logic which are different for a web page and a native app. For example the back button will be duplicated in the browser and in your header. You could use some platform specific CSS or configurations to hide it. Then there is your application state and user data - will you save it in local storage, session or database? This depends on your app and best judgement.
There will be some browser issues which may not be addressed in the core of Ionic and Onsen because they are not targeted to work with IE6/7 (see angular browser support), for example, but you can resolve those by having a graded browser support policy.

Resources