Considering using iOS for something. Questions

Hello. I have used Xojo for many years but need to explore iOS. The goal is to build a prototype app that eventually can run on all platforms. Since I am familiar with Xojo I thought that it might give an advantage to developing the prototype so I can get things off the ground at a lower cost than hiring a programmer to develop for all platforms. Once the Xojo prototype works, then I envision have others with more experience create the public release versions for the other platforms since I have no background on other development platforms. Does this thinking make sense or if I intend to build a multi platform app is there a better idea.

For those that started on Xojo for Mac and Pc is there a steep learning curve to create iOS apps?

Are there any limitations to doing a Xojo iOS app for iPhone X versus some other iOS development platform? I need to have the app communicate with a server, upload location, timestamp, other user data. Then be able to have the server correlate data and send info back to the users phone.

Any thoughts on whether investing in the iOS version would be a good use of time towards prototyping even if the final result is built by others using my Xojo version as a model.

I wrote an iOS app and then used that as the basis for developing a much more comprehensive app that runs on windows, OSX an can be ported to Linux.

The business rules developed made it a simple task to convert from iOS to Mac. There are some differences in terminology going from IOS to desktop, but these shouldnÂ’t prevent moving backwards and forwards between the CB platforms.

In your case, I would suggest building the app on the desktop in the way you know best, then use the methodology you develop as a guide to developing the iOS app.

You will need to get iOS developer and distribution certification and have XCode installed to get the app running in the simulator. There are lots of people wiling you help, and I have benefited from their advice myself.
The alternative to building the app yourself is to use the desktop version that you get working to write specifications for doneone rose to go it for you. That is a cost- benefit decision in your part.
Good vj luck with your project

All dev environments have limitations (and thatÂ’s definitely true of Xojo iOS, although there will be improvements in the future). However, Xojo iOS is perfect for the things you just mentioned.

I write iOS apps exclusively these days after doing Mac apps years ago. iOS apps are easier in many ways (no menus, etc.) but are more restrictive in what you can do (controls have fewer methods and properties). I personally can’t imagine converting an iOS app to a Mac app because of the huge difference in UI. The guts of the code could be repurposed easily enough.

This applies to “Xojo for iOS”… NOT to iOS programming in general… iOS controls have many more properties and more flexiblity than “Xojo for iOS” exposes…

Thanks for the input. For now the idea is to learn how to make an app for iPhone that can upload location data probably as GPS, time stamp, and user comments etc. Then have this data live on a server and the server can assist as needed and send certain info back or other users phones on request ie if users are sharing locations of properties etc. Also a messaging ability so users can comment to each other as needed. likewise a user can interact with the server similarly via a desktop app, but those parts are less challenging. Once the prototype works on iPhone then I need to duplicate it on android.

I am giving a presentation at Xojo.Connect on porting an app from the MacOS to iOS for iPad. I did have some prior experience in iOS as I already had released on iOS app. There are certainly differences to be overcome but anyone experienced in Xojo should be able to do it with the help of the people on this forum.

Xojo for iOS is vastly different from Xojo for desktop and there is definitely a learning curve. By programming in Swift you will learn a lot more about iOS than you will by programming in Xojo. Xojo does not provide access to a lot of iOS core hardware functionalities like Bluetooth - not sure about GPS. There may be third-party libraries that make these accessible to Xojo but it starts turning into a kludge. With Swift you get everything, in its purest form. For cross-platform it may be a shorter leap from Swift to something like Xamarin for Android.

Are you writing your iOS apps in Xojo?

ioS for Xojo is incredibly buggy and limited.

The OP said he has the following requirements: " I need to have the app communicate with a server, upload location, timestamp, other user data. Then be able to have the server correlate data and send info back to the users phone." For someone who has been using Xojo for years and has those requirements, Xojo iOS is a perfectly fine choice.

Agreed with Gavin. For what the OP describes Xojo will work just fine. If you are trying to make a game or AV app then Xojo is not the right choice.

Be sure to check out my iOSKit: https://github.com/kingj5/iOSKit

JeremieÂ’s iOS Design Extensions:
https://github.com/jkleroy/iOSDesignExtensions

Christian also has a couple of useful modules for iOS

Yes. I’ve done about 8 and haven’t had to use a Declare yet and don’t use anyone else’s add-ons. But I’m a citizen developer just doing it for fun.

Buggy… definitely no!
Limited… out of the box maybe, but the greatest advantage of Xojo is the free community-made extensions.

For more styling capabilities, iOSDesignExtensions will help you create great looking apps: GitHub - jkleroy/iOSDesignExtensions: 100+ functions to extend iOSControls design
For anything else, iOSKit covers most of them: GitHub - kingj5/iOSKit

I currently have 12 apps on the App Store and would only consider using another platform if I had to make a game with heavy graphics.

The iOSLocation class gives access to GPS location

1 Like

Thanks for all the suggestions. I have had a few minutes to look around on the Xojo ios and cant seem to find how to make the working screen layout become iPhone Xs Max. It looks like an older phone. I can build for Xs Max but the objects are all positioned wrong for the build simulator.

After seeing the comments about using Swift above, I downloaded Xcode and spent a few hours over the past day on youtube with some beginning tutorials for Swift and ios development. The basics seem easy to pick up in Swift and Xcode.

I need to find out how to get the Xojo layout to work with my phone to make it worth while to put more time into learning the Xojo platform. With only a few hours so far I’m leaning towards Xcode and Swift and do the API for the server in Xojo.

It’s all about the layout constraints for each object. You’ll have to do something similar in Xcode.

For example, to fill an entire view with a textarea you would use the following constraints:

Top: TopLayoutGuide.Bottom + Standard Gap
Left: Parent.Left + Standard Gap
Right: Parent.Right + Standard Gap
Bottom: BottomLayoutGuide.Top + Standard Gap

Don’t just drag controls around.

Actaully no you don’t “HAVE” to… unlike Xojo, Xcode/Swift/ObjC gives you free control to move things without using Autolayout (similar to how Xojo Desktop does). You CAN use AL if you like via Interface Builder… but actually a very large number of Swift/ObjC developers don’t…

I understand autolayout, however if your working layout phone in Xojo is a certain size ie iphone 8 and your want to design for X and the graphics are not scaled correct then the autolayout doesnt solve anything. I want to design with WYSIWYG. Maybe there is a way to find a correct phone to design in but I don’t see it yet. In Xcode you just select the phone you want to design in and it is correct on the simulator and real phone.

For example, the phone in Xojo looks like an 7+. If I drag an item to the center and then simulate it for the Xs Max, it is no longer centered. So you cant design on a phone layout that doesn’t translate to the simulator. In other words I think the pixels/points are different for each phone. I need to have the correct target phone in Xojo.

That is not really correct. If you use autolayout, then your constraints must be appropriate to provide the desired layout regardless of the device… If you use free positioning (like desktop, but not available directly in Xojo for iOS) then you must move objects to fit. This is actually more flexible, because you can have different layouts depending on how big the device is. One suggestion that has been floated around, it make unique views for each device… but that is time consuming, and “breaks” when Apple introduces something new.

I write all my iOS code without the use of Interface Builder, and use code to detect the device resolution and make adjustments accordingly… In some cases that is actually FASTER than Autolayout with has an complex solution engine.

Its important, because you cannot submit a iPhone app designed for only ONE MODEL… it must work on all current iPhones or its rejected.

Ok I see whats going on. In Xojo you can drag something on the screen but you must tweak the objects H center etc after dragging it to decide how it will behave. I assumed Xojo would be WYSIWYG after dragging. With Xcode, you are forced to tell each object how to adapt to the layout or it wont even compile. I understand better whats going on. Thanks. Now to spend some time and see what platform seems most ideal. Considering most of this will be done by someone else yet unknown, even if I start in Xojo for a basic layout template to show the ideas, then someone can replicate in Xcode and Swift quite easily.