How Does One Actually START Developing an App?

I have been a self taught programmer for 20 years. I have a VB6 program that has been (and still is) actively being sold and used. I really need to get a modern tool kit under my belt so I can create an app that will either integrate with or replace my existing product. I have tried to start working with new tools on and off for at least 5 years. This last attempt I have been trying to break ground for around 6 months and I’m getting nowhere.

I need the app to work in iOS or Android. People use both, so why would anyone write something that only works on one? I have been trying to find a platform that works with both. Not too long ago I found React Native which sounded promising. Their site suggested I should know Javascript so I found Codecademy and started learning Javascript. The lessons were good and I felt like I was making progress but it was getting complex (imo) and there was not one single mention of how you put a textbox on a screen, get the user’s data, and save it. I tried to just get started with React Native thinking I could piece it together but after days of trying to get some cryptic random-seeming pieces of god-knows-what installed I couldn’t make heads or tails of what I was supposed to do and nothing I learned about Javascript was anywhere in sight.

I then found out about Xamarin. I have had some success with VB.net so I thought something in Visual Studio might be a workable solution. It suggested I learn C# so I’ve been trying to learn C#. It’s closer to VB in syntax so it seemed like a good way to go. I’ve tried experimenting with a new Xamarin project and I still don’t see how you so much as begin to create an interface, never mind start writing anything useful. In a nutshell I need to have users fill in a bunch of data and I need to save it, manipulate it, and output it on demand. That’s a pretty basic concept right? How do you create a texbox? 5 years, never found an answer to THAT.

I have probably hundreds of hours spent just trying to get the very beginnings of an understanding of how web and phone programming is done and I still haven’t taken one single step forward! It’s so furiously frustrating! Every time I try to watch a tutorial either 2 minutes in they say to click something that doesn’t exist on my screen, or they reference 10 things that I have no idea what they’re talking about. I simply cannot find a way to actually START learning to develop an app. help

2 Likes

Hi there, welcome to the forums :smile:

I am an Android Developer, and I don’t have any experience with iOS development or even cross-platform developing, which is what you want to do.

However, I’ve heard React Native is really good, so I feel like you should give it another try.

Alright, so do you want to learn the very basics of web development and mobile development first? For web development, there are many really good courses here on Codecademy. I got started with mobile development by taking an Android development course at Coursera, I’m not sure how good the Codecademy Android development course is tbh.

When you’re done with that, here’s a really good article (in my opinion) about what React Native is. (Knowing all that basic stuff is always useful).

And like it says there:

React Native offers a way to build mobile applications using React and JavaScript.

Therefore, I would suggest you take the JavaScript course AND the React course that Codecademy offers. (This skill path would also be useful).

After you have all that knowledge and experience, then it would be good to actually get going with React Native.

As an alternative, I’ve heard Flutter is good for cross-platform development too.

I truly hope this helped you, I hate seeing people getting frustrated over their coding journeys. Frustration sucks. :slightly_frowning_face:

3 Likes

In that order. React depends heavily on modules which must be learned in JS. It’s quite a long way down the learning track, though. First we need to learn how to work with objects and classes. The JS basics. A must going forward into React.

Of course, the elephant in the room here is UX of which JS is only a third of the core API group. HTML and CSS being the other two. Learn how to create a text box on an HTML document. You can work with the simplest of tools, a text editor (if using Notepad be sure to save encoding as UTF-8), and a browser. The user interface is all HTML and CSS because of its ease of transmission over HTTP. The HT in HTML.

4 Likes

Thank you for the reply. I’ll give that direction another look. If I still can’t get anywhere I’ll check out Flutter.

1 Like

So the piece(s) I’m missing are HTML and CSS. That is super helpful to know. I’m not used to the idea that you have to know 3 separate languages to do one thing. If I explore the 2 I haven’t looked into it seems I’ll at least know how to scratch the surface. That has been really helpful, thank you! Both replies I received were great advice and both pointed toward React being a good platform. I appreciate your time.

1 Like

The technology you use is not as important as going with the language you are comfortable with.

Through both personal experience and knowing others who’ve built mobile apps, I can say that these cross-platform app frameworks work great for most use cases:

If you’ve already learned some JavaScript and C#, I think React Native or Xamarin are probably the way to go, if only because you won’t have to learn a new language from scratch.

No matter which route you go, having a solid understanding of object-oriented programming techniques will help a lot. This is particularly true of Flutter and Kivy as they require you to write your apps using classes. I believe Xamarin is class-heavy as well. I’m not sure about React Native, as JavaScript classes are a little different from classes in the other 3 languages, but I imagine you should be comfortable with JavaScript objects and classes.

You should also get used to thinking in terms of “widgets” (or “components” in React Native). A widget is a single piece of functionality for your app, such as a button. In general, mobile app frameworks let you build your app using combinations of these widgets, which you can then style as you please. Often, the widgets will be represented as a class. Widgets can also contain “child” widgets, or “children”, which are widgets that exist inside the constraints of their “parent” widget. I know this may sound a little foreign, but once you wrap your head around it, everything will start to make sense.

One way that these frameworks differ from one another is in how they style the widgets/components. Kivy and Xamarin both use a separate styling language (xaml for Xamarin and kvlang for Kivy) that allows you to completely separate your styling from your logic in separate files. React Native and Flutter both integrate the styling directly into the main body of code. There are pros and cons to each method, and it’s largely a matter of preference.

Although I agree that knowing the basics of HTML and CSS will help some with the styling of your app, I would say it’s not really necessary outside of React Native. React Native uses JSX, which is basically JavaScript that allows HTML inside of it, as well as some CSS-esque styling. Knowing some HTML and CSS would be a huge help there. For the other three frameworks, the styling is not very similar to HTML or CSS, but having an idea of CSS concepts (like margin and padding) will go a long way.

Finally, as for how to start, the best thing is to learn the language you need, particularly the object-oriented programing parts. Then, go to the website of the app framework and code through all the tutorials. Then, see if there is a Discord server for that language/framework and join it. Then start trying to build something based on the tutorials and the documentation. If you get stuck, the Discord servers, YouTube videos, official documentation and Google will be able to help you with 99.9% of what you’re struggling with.

Hope this helps. Happy coding!

1 Like

Thank you so much for the input. It seems that no matter what, getting up to speed on HTML and CSS will be helpful so I’ve started down that path. I think once I understand how an interface goes together the rest will make more sense.

In all my years of VB programming you just drag objects to the screen, arrange them, then make them do things. It’s all event driven. That’s where this has all been falling down. If I can put objects on the screen the rest might make more sense.

1 Like

I totally understand. It’s actually a pretty big step between knowing how to code in a language and knowing how to use that language inside of a mobile app framework. I think after you learn a little bit about HTML and CSS, React Native will really begin to make sense.

As you go through your lessons, you might want to take a break every few days to check out some of the React Native components and see how HTML and CSS are used to style them. For each component, the documentation has an interactive example that you can play with in the browser in order to gain a better understanding of how it can be used (make sure to click on the “iOS” and “Android” tabs in the examples).

For instance, if you look at the Button component example, you will see the majority of the code is a JavaScript function that returns an app structure written in HTML. When the elements say style=, they usually use style written in CSS and saved to a variable.

Although the elements you see in the RN examples might not be traditional HTML and CSS, they are close enough that a basic familiarity of those two languages should get you up and running. Once you understand enough to get a button on the page, styled and working, you can start working on a simple app interface and look to the documentation for examples. Supplement that with continued learning of JavaScript and you should be well on your way.

1 Like