Coding phone apps

Hi, I would like to open a thread to discuss what are the best ways to code phone apps.

What are the best languages ?
What are the good and bad points of native apps versus web apps (Html / Css / JS) ?
Does it depend on the type of app you’re wishing to make?
How do you manage apps providing interaction between users ? I mean, on a computer you would use, for instance, php and mysql, how is it here ?
Do you have experience with a framework like PhoneGap or Cordova, what do you think about it ?

And any other questions or advices linked to this topic.

Thank you !

Hey @cloudninja95476,

Very debatable. But if you’re developing natively, you’ve got:

  • Swift or Objective-C for iOS
  • Java for Android
  • Visual C++ or Visual C#, Visual Basic, and .NET for Windows Phone (I think; I’m probably wrong here, though)

If you’re developing a webapp (which I’m in favor of), you’ve got:

  • Whatever back-end language you’re using (Python, PHP, Ruby, etc.)
  • HTML/CSS
  • JavaScript

Muuch simpler :slight_smile: Especially once you have to worry about desktop, too.

Native will give you more permissions. If you need to access lots of the phone’s built in APIs, then native would be better. It’s also better in that users are less likely to add a webapp to their homescreen and treat it like an app, even though they can.
Web is completely cross platform. Need I say more? :wink:

I don’t really have much knowledge/experience with either of those two, sorry.

hey, @zystvan - first, thank you so much
allow me to add some questions from your answers :

  • Swift / Objective-C : is there any favorite ? Is there a benefit starting with Objective-C (assuming you don’t know either of them yet) from using the most recent Swift ?

Native will give you more permissions. If you need to access lots of the phone’s built in APIs, then native would be better.

So let’s say you want you want to add such things as photo gallery, facebook contacts… you’d better go for native, right ?

It’s also better in that users are less likely to add a webapp to their
homescreen and treat it like an app, even though they can.

I’m sorry for my naive question, but, what is exactly the benefit of an app if people don’t treat it as an app through adding it to their homescreen and having that direct access ?
Shall I see web app as, some “app fonctionalities” websites, like, “software website” (like, specialized in actions more than in content), that I will use through a browser, but that will innerly be made for phone screen, so that it visually looks like an app, though it’s not treated the same way than a native app by your phone, and therefore by the user ?

  • Let’s be more practical. Assume you want to make an Air bnb app, a Tinder, a Über, a Trello… This is typically where native apps come.

Now, if you wanna make, for instance, some “research the nice restaurant in my area”, or, “visit the world’s museums collections”, that have more like a website behavior, but can become more convenient if treated as apps, you will save time and work for a fine result making web app.
Am I understanding right ?

Thank you !

I think you should use Swift since it’s newer, and so likely to be supported longer. I haven’t looked at that much, though.

I’m not sure exactly what you’re thinking of doing here, but I think a webapp could do that without much trouble.

That’s one of the main problems with webapps :slight_smile: I expect that as webapps (hopefully) get more and more popular, users will get more used to treating them like native apps.

Stuff that involves the user’s location - some people say that that should be pretty much for native only, I think that with the HTML5 Geolocation API that webapps can do it too.

But if the user won’t treat the webapp like an app, it seems more like a website that should also have a native app as well, rather than being a webapp to the user.

@zystvan, hi, thank you and sorry for being slow in answering

so basically, if you really want to make an app, you should make it native, right ?…

Native will give you more permissions. If you need to access lots of the phone’s built in APIs, then native would be better.

can you develop, this API point, what sort of API you could want to use from the phone and that wouldn’t be available for webapps ?

I’m still not that sure to see a huge difference between reponsive website and webapp… I see a nuance in the idea of it, like, webapp is still some sort of “software oriented” product, while a website might more be a “document oriented product”, but in the result, it sounds quite close… isn’t it ?

So again, it seems like, if you really want something efficient on the software side (let’s say, making a Tinder, a Uber or a Trello - not about geolocalization, but about the efficiency in the actions, and possibly in inter-user actions), you’d better choose native, right ?

Thank you so much for your kind answering, it’s very helpful
Thanks

Webapps all the way! HTML, CSS, JS and Python are the best in my opinion because HTML and CSS are really easy and Javascript and Python are very similar so once you get good at one, the other is a lot easier.

1 Like

@jibblyj Ruby is great too :slight_smile:
But yeah, I like Python.

Python likes you too :wink:

1 Like

@zystvan, @jibblyj, thank you :slight_smile: from what i know of ruby i like it too:)
Still do u think you could answer my previous message if you have some answer to it?:slight_smile:
Thanks you!

@cloudninja95476 Sorry, I think I lost the tab with your question in it :slight_smile:
I don’t have a whole lot of experience with native or web apps, so I can’t tell you a whole lot about the advantages/disadvantages. Plus, my brain isn’t completely working right now, so I can explain on this even less than normal :expressionless:

If you look here, I think native can do all of those, and your browser can only do the things that are checkmarked for you. Does that help?
If not, sorry, let me know and I’ll try to answer better.

Can you tell me an example of webapp for Android? I don’t get it. Youtube app (android) is a web-app or a native app?

The youtube app is native.

But then what is a webapp

@fallenbeing A webapp could be a variety of different things. But I think of it as being a regular website that is like an app that runs inside your browser, and usually can also be run on your phone. For example, look at CodePen - You can save their site to your phone’s homescreen, and it’s just like an app, except in browser.

I realize this isn’t all that good of an answer, but does it help?

1 Like

And you think that webapps will replace native apps?

I think they’re likely to. Webapps work on multiple platforms using the same languages, but natives require different languages - it’s easier to make Webapps

1 Like

Yes, but on the other hand there is this thing called :
Node
And there is this other thing called :
React native

Which I was not really aware of when I first wrote this long post

And which is not playing in favor of webapps

@cloudninja95476 True, I’ve been learning a little more about them since then as well, but - you still have to write code differently for different platforms with those. You get to reuse lots of code, but there’s that little bit (Bonnie Eisenman said in one of her talks on React Native you would get around 80/20% reusage and platform-specific code) that you have to write.

A webapp has zero platform-specific code, it’s all reusable for every platform. I think that’s a big advantage, even over stuff like React Native, which seems pretty good.

React Native also doesn’t work for desktop OSes currently, so there’s that too - you would have to have your own webapp version or use Electron or be phone-only if you did that.

So, I’m still pretty confident that webapps are better :slight_smile:

1 Like

thank you for your always informed answers, @zystvan ; i’m very surprised that you say you have to write different code depending on the platform with react native, i have always read that you do everything in react native and at the end it just translates it into the phone’s native language and it’s done ; still, i will read the link you give and see what it says about this
yeah, i do agree with you about webapps ; actually what made me turn myself to node was the fact that i love javascript and node is based on it, plus the advantages people always talk about, speed, simplicity using npm…
then i must say i have discovered vue.js which is an awesome tool, that i strongly recommend you to check if you don’t already know it, i’m still beginning with it but from what i see it makes all the front end as simple as opening bread and putting some ham inside and then eating it, and it even offers the butter with ; so personally, i’m actually more on my way to link a pack such as vue.js for the front end, maybe sql lite for the db but i don’t know yet i must dig more into these questions, don’t have very precise ideas about this, and linking them with either react or go(lang), depending on which inspires me the most

which, if i’m not wrong, is exactly a webapp : )

1 Like