Become a MacRumors Supporter for $50/year with no ads, ability to filter front page stories, and private forums.

Thrao

macrumors newbie
Original poster
Nov 25, 2014
7
0
Indianapolis Indiana
Hello everyone,

Hopefully I am posting this in the correct location if not please let me know and I would be happy to move it. I am a senior in college finishing up my last semester as well as working full time for a company called Allegion, we make a lock or push bar that you touch everyday and I am sure you don't even think about. I am trying to find my niche in development. I am really interested in the mobile app side of development. I am currently working on learning Swift 3.0 and creating my senior project with it. But at work they are more web based wanting to use frameworks such as Ionic to get the job done. I really enjoy the Apple ecosystem and I am really enjoying learning how to develop for it but I also want to make sure that it makes the most sense. With React Native and Progressive Web Apps really starting to come into fruition should I even be focusing my efforts on learning native development or focus on mastering JavaScript and getting familiar with the various mobile frameworks?

The company is large enough were I feel either would be beneficial but from a career standpoint I am having a hard time choosing what to spend my time on.

Any advice would be greatly appreciated!
 
Native vs Web apps have been an argument from the start. Web apps can run on different devices and can have one code base. Native apps aren't dependent on 3rd party (unless you want to add them in) and have the advantage of being made by the company (Apple/Google...).

The truth is that programming is programming. I'm just now getting back into Android for the 1st time in years. I left Java years ago, but it isn't too hard to pick it back up.

Native always wins with me. I don't find it that hard to go from one language to another except some odd advanced things that are needed for some.

Native always seems to win because the backing company (Apple/Google..) have a huge interest in building an advanced stable system.

The exceptions to this include Unity and a few other game engines. I'd stay with popular languages. Swift is becoming popular, but is still iOS only. It might adopt over to Android, but that looks like a long shot.

The truth is that programming is programming. A skilled programmer can go from one platform to another pretty quickly.

Look at the job listings in your area, you'll see ObjC/Swift/Java probably more than JS for mobile. You'll see JS, but probably not as much JS for mobile.

Mobile is different as the UX (user experience) is very important.

One other issue is that the mobile platform is already well underway, it's not new anymore. It has a long way to go, but it's no longer new. This means that it's not just a question of which language is best, it's also a question of what languages have already carved their path. I don't think JS has carved a path in mobile. A search of the job listing should confirm this. (I'm not saying don't learn JS for other things, but maybe that's a 2nd thing to learn).
 
  • Like
Reactions: Thrao
I'm a full time Junior Mobile Developer. I've done iOS for one year, my company allowed me to participate in an 8 week Android bootcamp hosted by CodePath, so now I also know Android. I learned programming from "web development tutorials".
Here's my advice:
If you want a more solid use of fundamental CS, go mobile either native or Xamarin and C#. This is because, you have to consider things like memory management, heaps, multi-threading and process communication. Mobile is always built on a core CS language and your use of it is more in line with building applications for desktops. You have to consider resources, layouts, object oriented programming.
With web development, there's so many stacks and different ways of implementing them, and memory management isn't THAT big of a deal because objects in the web space don't maintain strong or weak pointers to each other. Their underlying framework handles that so you don't think about it.
However, what web offers over mobile is the job offers are more diverse and spread out. Not every company needs a native iOS/Android application... But every company needs a website. You can find jobs literally everywhere as a web developer, as long as you learn the right stuff (HTML, CSS, JavaScript, some kind of UI library like React or Angular, some kind of back-end like Node.JS/MongoDB or PostgreSQL).
 
  • Like
Reactions: Thrao
Go with a 3rd party web framework if you want difficulty finding programmers experienced in it/finding future jobs, being at the mercy of someone else besides Apple/Google, always waiting for an update to use the newest features/ possibly never being able to use new features with phone/iOS upgrades, and poor performance compared to native.

Or go native and have everything supported out of the box day one with the best possible performance.

Keep in mind not everything needs an app. A mobile website will be fine for a lot of things and leave it for the browser. The last thing we need is more mobile websites repackaged as "Apps" cluttering the app store.
 
  • Like
Reactions: Thrao and 1458279
Hello all, thank you very much for the replies it really does help!

I am scheduling some time with my professors to get some insight from them as well! The main concern was choosing the path of making native app development my primary skill and the area turn out to be slowly dieing due to all of the options of web frameworks. But from what you guys have said it sounds like we are always going to need both? That web isn't going to take over everything and we will always need someone to write native code on the device?
 
Hello all, thank you very much for the replies it really does help!

I am scheduling some time with my professors to get some insight from them as well! The main concern was choosing the path of making native app development my primary skill and the area turn out to be slowly dieing due to all of the options of web frameworks. But from what you guys have said it sounds like we are always going to need both? That web isn't going to take over everything and we will always need someone to write native code on the device?
One other thing to consider is that native mobile isn't that old. Web dev is old in "computer years". Although web dev has been around a lot longer than native mobile, it has changed over that time.

There's an advantage to getting into newer tech, one thing is that there aren't as many "10 years in" people.
 
Hello all, thank you very much for the replies it really does help!

I am scheduling some time with my professors to get some insight from them as well! The main concern was choosing the path of making native app development my primary skill and the area turn out to be slowly dieing due to all of the options of web frameworks. But from what you guys have said it sounds like we are always going to need both? That web isn't going to take over everything and we will always need someone to write native code on the device?

We need both in the sense that web frameworks should be used for web projects and Objective-C/Swift/Java should be used for mobile development.

There will always be "new" frameworks that allow you to "write once" run everywhere, but these always go unmaintained over time or are very restrictive in what they can do.

Don't focus on what you think is "slowly" dying. Picking up new languages after you done it a couple times is pretty easy and the concepts of programming carry over from language to language. Syntax is different, but you still approach problems in a similar fashion.
 
  • Like
Reactions: 1458279
It's far easier for a developer who knows one (or better two or more) native environments to learn to use a scripting framework than vice-versa. Code mills pump out more students with mostly scripting experience, increasing the competition for jobs you might want. Native environments also tend to last longer before becoming unpopular.
 
I have been an iOS developer for years now and I've loved every second of it.

Do whatever you like best. For me, that's native software. I can do other things as well, I love Node.JS, but I absolutely hate frontend web development.

In the end, it doesn't really matter which path you choose. What matters is that you enjoy it. Because if you enjoy it, you'll work hard at it and you'll get extremely good at it. In the end, programming languages come and go.

My best advice would be to never stop learning and don't get stuck in a single category. I started doing machine learning about half a year ago and it's become my favorite hobby, and I've now started deploying a recommendation engine for my company. If you keep a diverse range of interests you'll never get bored/burned out.
 
  • Like
Reactions: 1458279
I have been an iOS developer for years now and I've loved every second of it.

Do whatever you like best. For me, that's native software. I can do other things as well, I love Node.JS, but I absolutely hate frontend web development.

In the end, it doesn't really matter which path you choose. What matters is that you enjoy it. Because if you enjoy it, you'll work hard at it and you'll get extremely good at it. In the end, programming languages come and go.

My best advice would be to never stop learning and don't get stuck in a single category. I started doing machine learning about half a year ago and it's become my favorite hobby, and I've now started deploying a recommendation engine for my company. If you keep a diverse range of interests you'll never get bored/burned out.

AxoNeuron, I absolutely love reading posts like yours! It's so refreshing to hear about people who are actually WORKING as iOS developers and loving their work. In fact, I find it refreshing to hear from people who do anything and love their work! I am currently trying to find that "love of work" that has lately been so elusive for me. Long ago, I used to love working as a physician. But, over time, after jumping through hoop after hoop for bureaucracies ranging from hospital administrations, state and federal government agencies, insurance companies, and pretty much everyone under the sun, I've been what they call "jaded." So now, I'm looking to my old love of engineering and computers to try to rekindle that love I used to have my work, as I try to reshape my work into something I love.

I have recently started working with a telemedicine company, providing medical services through their proprietary video chat system, which has allowed me to get paid fairly for providing medical consultations from the comfort of my own home office. No more bureaucracies, no more germs, no more overhead, no more debates about insurance/Obamacare/singe-payer vs. fee-for-service, etc. Now, it's just me and the patient, in a chat window, and I get paid on a per-patient basis. That's it. A little less money, but SO MUCH HAPPIER! Now, I'd also love to learn iOS development in my "free time," but up until recently, I have quit learning so many times because of how much of my time was spent jumping through BS hoops for my medical work....but no more hoops now! So, you just inspired me to open up that Ray Wenderlich website again and get back to it!! Thank you, AxoNeuron!!!
 
DrMotown all the best in kickstarting a new path. A great way to stay engaged as you learn is to have little app ideas to work on while you learn new features. Don't shoot for the stars just simple apps that would help you or make you happy. Maybe something to help your job or just hobby related.

When I was learning iOS, I wanted to have an app that kept track of my hardware inventory at work (200 pieces of equipment) in a way I liked. Just tableviews and some views. But as I learned how to display, then add, edit, delete and stuff like drilling down into detail, it came out really nice and kept me motivated to learn something else to improve it.

I took some other ideas I learned and wrote a sports app to track live soccer scores. Whenever I learned a new way to do something in iOS I would look to add that knowledge to one of these two apps as I progressed.

As for the topic here, do what pays. As was said, programming is programming it's about solving puzzles with math and logic. If you have personal goals or desires like you really really want to be an iOS dev, focus on native languages. Otherwise things like React or Node, etc and completely viable especially in a work environment that supports them.
 
Wanted to thank everyone for the advice, I have been working on web development for my job but in my free time working on learning Swift 3 and Objective-C! Like everyone said going to do what I enjoy and keep my interest and mind open!

Cheers Everyone
 
My suggestion would be to get really good at iOS native development with swift, then also learn and understand the javascript technologies like ionic and react. Plus understand backend and devops to progress towards a full stack developer. Hope this helps.
 
Register on MacRumors! This sidebar will go away, and you'll see fewer ads.