

Ask HN: Cross platform mobile and web development - isgood12

I think this discussion will be helpful for many of us:<p>Say you have to build a computationally simple, but highly polished app. Say an app like &quot;The Weather Channel&quot; app. And you want to keep your business logic consistent across platforms (iOS, Android, Web) over the multiple versions of the app. Otherwise, over time, the app starts behaving slightly differently on different platforms.<p>You can either use a cross platform development solution that supports iOS, Android and web. Or, you can use some other method to keep the business layer (which can be shared) separate from the visual layer. How would you go about doing so using today&#x27;s technologies? Would love to hear from those who&#x27;ve tried Xamarin, Unity, PhoneGap, React Native, Ruby Motion, etc.<p>Bonus question: How would you go about prototyping and designing such an app for the 10+ very different screen sizes?
======
seekingcharlie
I lead design across a similar product (with iOS, Android & web). We have a
web API & that's what our native apps pull their data from (we report on
things like sales etc, so this ensures we're consistent across all platforms).

Re design - I'd literally do a design for each platform (iOS, Android, Web).
There are huge differences between iOS & Android - they have completely
different user experience/functionality so you can't just port 1 exact design
across multiple platforms.

I'd highly recommend creating a UI style guide if you don't have one already.
It's really quick for me to do 10+ screens as I'm using the same colors,
fonts, etc in each file & then I generally just have to move blocks around for
each platform.

Also, I recommend Sketch for design work. It's a lifesaver for designing
between multiple platforms & everything is vector so it's scalable between
different resolutions. A million times better than Photoshop for UI design.

------
FlyingLawnmower
I use Xamarin for personal projects, and it's been working quite well so far.
They're pretty good about exposing native UIs so you get native looking
applications instead of the ugly (in my opinion) PhoneGap like apps. Plus, C#
feels like it was made for mobile apps. However, there are downsides...trying
to do anything that leverages many sensors on the device gets tricky, and
they're isn't as much support available on StackOverflow and whatnot. I think
it is the best cross platform app solution out now though.

------
jefflinwood
With regards to prototyping and designing, you really have to be thinking
about responsive layouts with breakpoints.

Whether that's native Android layouts and dimension files with different
breakpoints for widths, Size Classes for iOS, or CSS Media Queries for the
web, that's really what you need to decide.

Generally speaking, for a content-heavy app, you're going to end up trying to
move all of your business logic into your server back end, and let your front
end (Android, IOS, web) render content.

