Is it easier to program for mobile or pc applications?
So many people today use their phones for everything and so many programs exist on the multiple app stores. Is it easier to program for the app store or for for windows applications?
Jared ChungCareerVillage.org Team BACKER
A few things make mobile programming a tiny bit more complex:
- The programming takes place on a desktop, but the app works on a mobile phone, so you end up having to install some specialty software to deal with that. Emulators or simulators are programs that "emulate" what a mobile phone would do with your program, but they aren't always a perfect 1:1 match for a real-world mobile phone. That can sometimes allow for bugs that are hard to detect until you have an app running on a real device.
- There's a very wide variety of mobile phone devices and operating system versions that need to be tested and/or designed for when you're planning to maintain a mobile app
- Mobile apps tend to be distributed through the app stores, which means that you have to apply for approval from those app stores, and when you make changes to your app you have to re-submit the updates through those stores. The app stores sometimes will quickly approve changes, but sometimes they will decline your changes, so that introduces a bit more work into your process.
All of this said, I want to add a few other comments:
- In general, I'd always start a new project using whatever languages or frameworks are most familiar to me, unless I'm explicitly trying to use the project to learn something new or play around with a new technology. As a programmer, even when I work with technology I am familiar with, I end up hitting a lot of challenges and learning a lot. So when I'm working with something unfamiliar, I always expect to spend a very large amount of my time bumping into bugs and reading documentation. "Drinking from a firehose" of information, as they say.
- You mentioned mobile apps and PC applications, but you didn't explicitly mention web applications. If you haven't looked into programming web applications, I'd encourage you to take a look at that as well to see if that's something you like. I've found in my past experience that programming for web applications is among the more accessible first steps.
- You could also consider programming hardware. For example the raspberry pi or other micro-computers can be programmed in a variety of ways.
- Significant work has been done recently to try to make programming mobile applications and pc applications easier. There are a large number of open-source libraries and tools that can make your life easier as a programmer. For example, if you don't want to learn many programming languages, there are libraries that allow you to write multiple mobile applications using only one programming language (such as using the Kivy framework to write your mobile apps in Python). The challenge that you might face using these tools is that each of them has quirks and limitations that you'll come across as you use them. Part of the trade-off of using lots of open-source tools is that although you benefit from their features, you are also subject to the complexity of integrating them and bumping into their limitations.
- When I first started programming, I started with something very small and easy:
Source: I've been programming for the past 12 years, and programmed a tiny bit as a teenager long ago. I've programmed web applications and PWA-style mobile apps, and I've researched several cross-platform app development platforms as I have worked on trying to evaluate CareerVillage's prospects for launching native mobile apps.
Jared, CareerVillage.org Team recommends the following next steps:
With Web Applications becoming more commonplace there are several options which support cross systems/OS development without additional effort. All applications contain two fundamental parts - the front end and the backend. Industry practices generally tend towards having a common backend for both applications to promote re-usability among many other factors. The difference between mobile, web and desktop apps really boils down to the frontend. While developing for a particular device has its own advantages, especially when we have specific use case for the product, it is generally a better idea to develop such that the product can work across various platforms. Take responsive websites for an example, the frontend is adaptive the device that we are using while the backend (which is not exposed to the user) that executes the functionalities is common.
However it all boils down to personal choice, some people find mobile application development easier, some might choose to focus desktop applications. Once you have basic knowledge, design principles and algorithms / Data Structures needed to make an application in both cases for a particular use case.
Param recommends the following next steps: