Is Xojo the right solution?

After 3 weeks programming a new App with Xojo, i am not sure if i had took the right decision.
I didn’t want to use Swift because i had to start from beginning, but after all this time, i saw that Xojo is a very green development tool for iOS apps. If you want to change a button background, you have to use external methods, or iOSExtensions by Jeremie or iOSKit by Jason.
With Swift, is just a selection box.
My question. Is Xojo planning to change that, with some sample updates to Xojo for iOS, taking full advantage of Apple Libs? Or its better think about Swift for future new versions of my App?

If you need a robust iOS developement environment, in my opinion, Xojo is not it.
Since the day Xojo released “Xojo for iOS” there has been some forward movement, but (again my opinion) very very little
As you mentioned it is a “green environment”, and while I love Xojo for Desktop, the learning curve for Swift was not very steep.

And all of my iOS related programming even forgoes the use of Interface Builder, or the use of Autolayout, and is produced in 100% code (no XIB, NIB or storyboards)

If your target is cross-platform desktop then Xojo is a good choice (but could be better nonetheless).

Then iOS is a nice add-on.

If your main or only target is iOS then go with Swift.

Yes, we are planning for improvements for our iOS support. I realize it’s less than ideal to have to sometimes resort to things external to Xojo.

Geoff, I am waiting 2019r1 to see, but some very simple functions could be introduced. Not even change screen background color it’s possible (i know we have external resources for that, but you have to run the project to see that working).

We don’t have new iOS features planned for r1. However, if you could tell me specifically what things you feel are missing, I’d be happy to review them.

Are you interested exclusively in iOS or are you also wanting to develop for other platforms? Android, web, desktop?

Luiz,

I am a long time Xojo fan but I must admit I have not done much iOS development with Xojo. Today I do mostly Web and some desktop and some console utility apps. My only thought is if Jeremie Leroy can write Packr in Xojo (a trip packing list app that is pretty extensive and highly rated on the App Store) then there must not be many limitations where work arounds don’t exist.

At this stage you may have to write some Declares and call the specific iOS functions you need. In the future maybe this won’t be as necessary but it does give you a path to a solution.

This is by far the best support community I have participated in over my many decades of programming. I suggest you post something here and have the community assist in doing a few declares.

You should also give Geoff some feedback that may help prioritize future features. It is rare in the world of software development tools (or anything) you get a response from the CEO of the company on the community forum because they saw a user with a need. My guess would be most CEOs don’t spend much personal time on their own company community forums.

One of the great things about Xojo, beyond the community support, is the ability to use essentially the same syntax for Desktop, Web, and Console apps across Windows, Mac OSX, Linux, and iOS. Xojo is not perfect but it keeps me from having to be fluent in many languages and development tools. In the long run this makes me more productive.

Learning curves can be frustrating but maybe there is still hope.

Mark

I wrote an app in swift the took me about six months. I rewrote it in Xojo, once I had figured out the logic in less than a week - both apps designed to run on iOS. The learning curves are significantly different.

Go with Swift for sure. I too had hopes for iOS on Xojo, But it is simply not worth the wait.

I put off learning Swift, thinking it would be pretty difficult as I’m by no means an accomplished programmer. But finally I took the leap, since Xojo will just never, ever catch up to “the real thing”. I started an on-line course this past December to get me up to speed and while I haven’t submitted to the app store yet, I’m confident I will have my app ready by summer. And that’s working on it only intermittently.

Turns out that Swift is really not that difficult after all, but you have to jump in.

Xojo is fantastic in its own right and a wonderful environment for programming, but no matter how much Xojo says they are going to develop iOS, just don’t wait for them. It will be a long, frustrating wait. They are always “planning” and “reviewing”, but not exactly always delivering on iOS.

The same is true for Android. They are years too late. There are other and better options available which already deliver Desktop - Android - iOS development from one source.

If you are using a Mac, then Xojo is a good solution. But for Windows and mobile platforms, look elsewhere.

I think that in future versions of Xojo, some sort of shareable inter-platform code of MVC pattern could be implemented, and the User Interface part would be platform specific for the same project. One face for Linux, one face for Windows, one face Android… etc. And a full set of native controls for that platform will be available, not just a small “common core” UI elements. What they do in background could be “essentially” the same (DB, JSON, HTTP, calcs, etc) with some code parts xplat shared, and some parts specific (UI have different events, for example). You should mark parts with a “compile for: All [x], Android [x], iOS [x], Mac[x], Windows[x], …”, but for UI design you should have just one dedicated UI design for each platform. Xojo could also have a virtual platform like “Virtual Display” accepting a common core UI elements (Button, radio, box, …) that is not a “WYSIWYG” but compiles for all those as today AND enable you to create a template enabling you to “clone” a native one. A “clone it for Android”, or “clone it for iOS”, etc where “compatible” controls become native WYSIWYG ones with same names needing just adaptations, enhancements, layout changes, and extra controls.

My experience is 180 degrees… besides the fact that an “Xojo for iOS” app requires tons of declares to to simple things, the fact the Autolayout is required (and my opinion not intuituive) killed it for me.

Xojo for iOS has its strengths and weaknesses. If you’re A video processing app it is certainly not right for you, but for a business app or something like Packr it works very well. Making games are possible in Xojo but it’s probablh better to use something like Unity if you’re serious about creating games.

Yes some amount of patience is required to figure out what declares may be needed, but you’ll have to dig through swift docs to find the same function calls if you’re using swift anyway. Between iOSKit, iOSDesignExtensions, and Christain’s paid classes most of the features a typical developer will want are available.

You talk about hating autolayout a lot, but it is the way you should be making your apps. It definitely has a learning curve but after that it makes designing UIs significantly easier and you don’t have to design a new one every time Apple releases a new phone/tablet with a different resolution. I don’t count Autolayout as a deficiency of Xojo, I believe it’s a strength (and it’s encouraged by Apple).

We of course could spent hours debating this, and in the end neither of us will have changed their minds.
In regards to AL, Apple at least gives the the choice to use it or not, Xojo does not give you that choice. As to new devices, I have a framework in place that adapts to a new device so that I don’t have to redesign an app each time.

And from what I have seen AL is “ok” if you have a static layout that just needs to conform to the size/orientation of various devices, but does little if you need/want a totally different layout per device or change font sizes per device etc…

As to declares, because Swift is built on the native infrastructure, no “band-aid” or “add-ons” are required. Every attribute of every control is exposed and directly available to the developer. In my opinion, things like iOSKit, iOSDesignExtenstions and MBS should be exceptions not the “rule”.

So basically I was disappointed in the level of “Xojo for iOS” when it was released, and honestly have seen little progress since.

[quote=424709:@Geoff Perlman]We don’t have new iOS features planned for r1. However, if you could tell me specifically what things you feel are missing, I’d be happy to review them.

Are you interested exclusively in iOS or are you also wanting to develop for other platforms? Android, web, desktop?[/quote]

Right now, only iOS.
But you could start with all controls attributes. Buttons background color, image, corner, etc.
View background color, toolbar color, etc.
That would be a good start.

[quote=424782:@Mark Strickland]Luiz,

I am a long time Xojo fan but I must admit I have not done much iOS development with Xojo. Today I do mostly Web and some desktop and some console utility apps. My only thought is if Jeremie Leroy can write Packr in Xojo (a trip packing list app that is pretty extensive and highly rated on the App Store) then there must not be many limitations where work arounds don’t exist.

At this stage you may have to write some Declares and call the specific iOS functions you need. In the future maybe this won’t be as necessary but it does give you a path to a solution.

This is by far the best support community I have participated in over my many decades of programming. I suggest you post something here and have the community assist in doing a few declares.

You should also give Geoff some feedback that may help prioritize future features. It is rare in the world of software development tools (or anything) you get a response from the CEO of the company on the community forum because they saw a user with a need. My guess would be most CEOs don’t spend much personal time on their own company community forums.

One of the great things about Xojo, beyond the community support, is the ability to use essentially the same syntax for Desktop, Web, and Console apps across Windows, Mac OSX, Linux, and iOS. Xojo is not perfect but it keeps me from having to be fluent in many languages and development tools. In the long run this makes me more productive.

Learning curves can be frustrating but maybe there is still hope.

Mark[/quote]

Mark, i am sure we can develop amazing apps with Xojo. What i am saying is that some basic functions are not done. Try to change a button background color for example.

Yes. that’s why i started with Xojo. But took me 2 weeks to create the interface with Xojo. I had to find and install 2 or 3 extra libs, just to do that. I am not talking about language itself.

Is Xojo the right solution?

Maybe yes if you are tied to a Mac, and your app is verty basic.

For me, even before of the limitations, was a disapointment since the beggining with the policy of NO windows nor Linux support even if you spent on a PRO licence.

Not really, cant be disscused here, but there are plenty of options

[quote=425003:@Luiz F. D. Dias]Right now, only iOS.
But you could start with all controls attributes. Buttons background color, image, corner, etc.
View background color, toolbar color, etc.
That would be a good start.[/quote]
We will be adding more features to our iOS framework. One of the things we are working on now (interops) will make adding features to iOS a whole lot easier.

[quote=425027:@Ivan Tellez]Is Xojo the right solution?

Maybe yes if you are tied to a Mac, and your app is verty basic.

For me, even before of the limitations, was a disapointment since the beggining with the policy of NO windows nor Linux support even if you spent on a PRO licence. [/quote]
It’s not really a Xojo policy in their defence. You can’t compile for iOS without a Mac with any tool. It’s an Apple requirement. For example, their is no Windows or Linux iOS simulator.