What stack would you recommend for a simple web/mobile app?

8 points by jack_pp ↗ HN
I would like to build a simple app for a local poker room. It doesn't have to do much, just list a tournament schedule, cash tables, promotions and restaurant menu. I'll use Django for the backend but have no idea which frontend I should use. I'd like to optimize for easiness to learn and sharing as much as possible between the web / android / ios versions.

The mobile version would work fine as a simple encapsulation of the website so would Cordova be better or do you recommend learning React Native?

I have zero experience with either web or mobile and am willing to learn whatever I need (already familiar with C/C++/Python and non-web backend development).

I ask because I don't like to waste time learning frameworks just for the sake of it.

8 comments

[ 3.4 ms ] story [ 32.3 ms ] thread
React and React Native (web/mobile and native ios & android).
Based on your main point, no experience, I have two suggestions: React/React Native for the framework approach, or something lighter: Simple HTML, CSS, and JavaScript. My background: .NET dev by day, Cordova dev by night.

React/RN and Ionic would be my top framework suggestions. With React, you have to learn their specific UI syntax/JSX, then React Native syntax. With Ionic, you need to learn Angular and TypeScript, as well as their specific UI syntax.

Another idea would be to start with simple HTML/CSS/JavaScript. These are the building blocks of the web and I've seen others struggle immensely when they don't take the time to learn them properly. This is what I did with my apps, currently using Knockout.js (two way binding is amazing), KendoUI Core (easy cross-platform UIs), and PhoneGap Build (cloud service to create native apps from web code). Incidentally, my Pluralsight course launches in a few minutes - http://www.pluralsight.com/courses/phonegap-build-fundamenta... - and is exactly meant for beginners to get their feet wet before diving into the more complex frameworks.

You say you're a Cordova dev but you would still rather recommend React/RN over it? Could you elaborate please?

I think I'd be better suited doing vanilla HTML/CSS/JS since I dabbled in those a while ago and it's very easy to learn them again.

Looking forward to your course !

Ah sure, sorry about that! I meant to elaborate but got distracted haha. Up until now, I've used plain web tech... but will be switching to React Native or Ionic soon. They both offer so much: rich UIs, native plugins, and more. So what I meant by my comments is, unfortunately I can't give more feedback on RN, but given its rising popularity it would be a safe time investment. I do stand by my comment that you could begin with vanilla web, then move to a more complex framework when you grow to that point. Thanks for the kind comment about the course, too!
If you'll use Django for the back-end, why not just build the whole thing with Django and render everything server side? Just make the web version mobile-friendly so you don't need apps. You can still wrap in Cordova, or have people add the web site shortcut to their mobile launcher.

If you need any truly interactive elements, you can add a bit of javascript directly in the Django templates, without needing a framework.

Thinking about it more: why do you need Django at all? It sounds like you're just presenting static information?

Static information that changes.. cash tables need to be updated 30 minutes or so, tournament schedules less often but still do change
For a simple app, cordova and react native would be overkill. Just think for a moment whether you really need a mobile app.

Unless you are going to do a lot of client side interaction on the mobile like ordering, i'd recommend you to create a simple website. Use foundation or bootstrap to create a simple, responsive website.

If you really feel that you requirements can change over time towards more heavy interactivity, use django to create a json api that would be consumed by a responsive react based frontend exclusively using ajax calls (Look to reddit's mobile site for an example). This allows you to scale to native mobile apps if the need arises in the future.

Since you have zero experience with web and mobile, jumping head first into react native and cordova and mobile would be a big folly. Make and ship a regular, responsive website first before even thinking about mobile apps. Shipping out small but working apps and improving on them is better that spending months on an all encompassing platform that only exists on paper.