Thoughts about API 2.0

tl:dr; With API 2.0, would it be possible to create a Windows app, iOS app and Android app from one project?

I have a bunch of friends who run an iOS games company here in Taiwan. They use Corona as their development tool, and can output iOS and Android games. it works well enough for them to still be at it after 5~6 years.

In the last few years some of them have switched to using MS Surface for development; one of the benefits they’ve found is it’s much easier to develop and debug touch based games on an actual touch based device. There was a learning curve (all these guys were avid Mac users until a few years ago), but overall they claim it’s really helped to accelerate their debugging process.

Which has got me thinking, what if I could use Xojo on Windows to build a Touch based Windows application, run and debug it there. Then flick a compile option and spit out an iOS app and Android app, with minimal work? Obviously they’d need testing on their respective platforms and various GUI optimization tweaks.

Potentially exciting?

No. Xojo is moving further and further from “write it once and deploy.”
Interops as the way most of Android development will work being the prime example of this.

The last thing I want to do is write

[code]#if TargetiOS then
// iOS version of this

#elseif TargetAndroid then
// Android version of the same thing I just wrote

#endif[/code]

I am not holding my breath on Xojo Android, and I think the iOS target is a joke.

I’ve been wondering the last couple years, will iOS and Android be one project type (i.e. mobile) like Mac, Windows, linux is a desktop project…?

I don’t think that whatever Xojo does (or does not do) that they will ever be able to produce a developement environmet that is 100% cross platform. The “business logic” part of an app? sure, but the UX part is way too diverse to be able to fit into a single “bucket”, what with “infinitie” screen sizes for macOS/Windows (who knows what monitor a user may have?), the relatively fixed screen sizes of iOS (today there are only 7 real sizes), and the who knows what Android has. The UX and workflow really need to be designed around the platform and how a user would be expected to interact

They could do it by dropping native controls for something html-based, like Electron does. Without that, mobile, desktop, and web are just too dissimilar. I think at best we’d get those 3. But at the moment, it looks like iOS and Android will be completely separate too.

Oh and just to allay fears, I’ve already talked to Geoff about such an idea and there’s nearly no chance Xojo will go this route.

Isn’t that the same as Mac vs Windows code?

Yes, and the problem is becoming worse on Desktop. Declares and platform pragmas were once the edge-case fixes for things that Xojo couldn’t do. They are now so common in iOS people just accept it like they should pay $300 for bending over backwards to get basic functionality.

MoviePlayer is one of those cross platform nightmares. We ended up creating a special container that handles all the platform specifics for Mac vs. Windows. Feel free to add your own examples, it’s just disappointing from a professional aspect. The power to build cross platform apps quickly and easily is gone, in it’s place is being able to create tip calculators without reading documentation.

We have a Windows Desktop app that is a business app. It connects to a PostgreSQL database server and allows managing of customers, orders, etc. We use einhugur plugins for the date picker, splitter and a few other things. We use MonkeyBread plugins and DynaPDF. It has a custom toolbar made with a canvas control. We are compiling with Xojo 2018 R1.1. We have written it exclusively for Windows and never compiled for Mac.

Just a few minutes ago we compiled for Mac, just for fun. We ran it on a Mac Mini and it ran almost perfectly. We did ZERO modifications and it is completely usable as is. If we needed a Mac version, we would tweak a few things…but really it is remarkable. It runs a little snappier on the Mac than the PC version.

So, with some Desktop apps, you can write once and compile to Mac and Windows without much extra work.

This is my point, starting next year, the Mac will use iPad applications, so if we could use Windows to develop and debug (because it has a Touch Screen and regular keyboard/mouse inputs), then spit out Windows, iOS and Android, you’ve got your major (commercial) platforms covered there and then and from one project. It would be amazing.

Agreed; part of that problem is because the framework they were using, was cross platform and sadly doesn’t exist any more. I also don’t know how many people actually use the movie player, but I would imagine they did some feasibility study. I’m not saying it’s NOT frustrating to you (or me, same boat), I have honestly thought for a while that Xojo really could do with some hands (yeah, this again) to help flesh it out a bit more. AVFoundation is an awkward framework.

You gotta admit, even with adding some many different declares per platform, it’s still easier than maintaining two separate projects in two different tools, or using a Xojo competitor which has no possibility of declares and their tool box makes Xojo’s look huge.

I’d rather not see that. My main point was that currently iOS development requires a Mac because of the iOS emulator is needed to debug. My line of thinking is to do most of the logic debugging and 80% interface by making a native app to the development machine (In this case, it would be Windows so we can work with Touch).

For Desktop, sure.
Mobile? No. I can’t go into detail without ranting about the current state of things, so we’ll leave it at that.

Haven’t gotten into that yet; and I might not until API 2.0 is ready. I thought it was meant to help ease a lot of the things that people have been complaining about.

True, I have a PRO licence, but use another solution for iOS.

Actually, there are lots of other solutions for ios (and cheaper), with all the changes in the “new” framework to support ios, I really can’t imagine all the new issues if they add android.

In fact, they should add more controls for the RAD and fix so many bugs instead of thinking on adding support for more platforms.

Bug squash does not add market share while adding more Target(s) will.