Does anyone else find javascript/electron-based code editors confusing? I can never understand the organization/hierarchies of menus, buttons, windows, tabs. All my time is spent hunting through the interface. My kingdom for a normal dialogue box!

I’ve tried and failed to use VSCodium on a bunch of occasions for this reason. And a couple other ones. It’s like the UI got left in the InstaPot waaaay too long and now it’s just a soggy stewy mess.

Today I finally thought I’d take the first step toward android development. Completing a very simple hello world tutorial is proving to be challenging just because the window I see doesn’t precisely correspond to the screenshots. Trying to find the buttons/menus/tools is very slow as I am constantly getting lost. I only ever have this in applications with javascript-based UIs

Questions:

  1. Am I the only one who faces this challenge?

  2. Do I have to use Android Studio or it there some kind of native linux alternative?

edited to reflect correction that Android Studio is not electron

  • linuxPIPEpowerOP
    link
    fedilink
    arrow-up
    2
    ·
    8 months ago

    Information overload, particularly as a beginner can be a very real problem as modern IDEs can be a little like drinking from a fire hose. They are by their nature information dense.

    All of what you mention is possible. Which is why I’m wondering if I need android studio to learn? Or can I use something simpler for now? Tutorials I find seem to want you to use AS. Does it do anything special?

    Sort of reminds me of 101 intro beginner linux tutorial that begins with instructing the user to open vi. Even though eventually it’s good to know vi, nano is better to start with.

    I don’t intend this to be rude, but do you perhaps have some kind of visual impairment? Could adjusting your display to use a higher UI scaling help? Maybe bump up the default font sizes? Have you tested to see if you have some kind of colorblindness?

    I’ve done the ones where there is a circle of dots hat have a number in them and I can see all the numbers. Some of them are faint but I assume that’s expected.

    But OTOH in general I find a lot of modern dark color schemes difficult especially the “low contrast” ones difficult to use. My guess has been it’s because I mostly have shitty old hardware and the schemes might be designed by people with fancy modern displays that fix it somehow. Or if you are using a tiling WM instead of stacking windows on top of one another, the fact that the titlebar of the active window melts into the content of the one behind it may be a non issue.

    • orclev@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      8 months ago

      All of what you mention is possible. Which is why I’m wondering if I need android studio to learn? Or can I use something simpler for now?

      So, lets unpack what exactly you mean by learn in this context. There are multiple layers of skills necessary in order to program an Android app.

      At the base layer, you’ve got conceptual skills like Object Oriented Programming (OOP). There are a variety of languages that are classified as OOP, Java/Kotlin happen to be among the more popular ones at the moment. But all OOP languages will have certain design principles in common and understanding those will allow you to not only structure your own code well, but also to understand why certain APIs are designed the way they are. You don’t even need a computer to learn these skills, although having one to play around with will certainly help.

      Next up from that you have the actual language. Kotlin and/or Java in the case of Android. Technically you don’t need an IDE to learn the intricacies of these languages, although it will probably help mostly in regard to your interactions with the standard libraries. What an IDE will give you is the ability to quickly navigate to class, method, and property declarations, both in your own code and in libraries. It will also provide you with auto-completion of all of the above, so you can explore library APIs in a more organic way by taking an instance of some class and simply scrolling through what methods and properties it has available. That said, if you have a web browser open you can technically accomplish the same thing by just keeping the language reference open, so this is really more of just a time saver.

      Finally there’s the Android APIs. These are distinct from the standard library of Kotlin/Java and are going to be the most opaque portion of the learning process. Due to the size and complexity of these APIs, you really do want to be using an IDE here. You can write an Android app without one, but it’s going to be much harder and far more error prone.

      Tutorials I find seem to want you to use AS.

      That’s because Android Studio is the official IDE that google has endorsed for Android development, much like XCode is the IDE that Apple has endorsed (and developed) for iOS (and OS X) development. Unlike in the case of iOS/OS X you don’t technically need to use Android Studio, it’s entirely possible to cobble together your own set of scripts and tools to accomplish the same thing, but once again you’re going to have a much smoother time if you use Android Studio. While the actual code can be written in almost anything, Android Studio is going to provide you tools to do things like UI design, easy access to launch your code in an emulator (or connected device), as well as a very easy to use debugger, plus the benefits I mentioned previously for exploring and understanding the Android APIs.

      Does it do anything special?

      Basically all the stuff I mentioned previously. The ability to very easily navigate to class and method declarations or instances of interfaces is invaluable when understanding and designing your apps, and being able to easily breakpoint and step through your code is absolutely critical for fixing bugs.

      Overall I’d say take a layered approach. First make sure your OOP fundamentals are good, for that you can work with anything you happen to be comfortable with. Next learn Kotlin. Once again you can use anything you want for this, although it would be a good idea to at least use something like IntelliJ community edition or Android Studio. I recommend not writing an Android app for this, instead make something simple that just prints to the CLI like a hello world type app, although hopefully with a little more going on.

      Only once you’re comfortable with the above, then I’d explore making an Android app, and I would also recommend using Android Studio to do so. Once you’ve got a good understanding of OOP and Kotlin then a lot of what Android Studio provides will start to make sense.