Building a better Mac app - pondering thoughts

Oh, and to clarify: I have made several presentable Mac apps with Real Studio/Xojo, two of which are in the Mac App Store (Find Any File and iClip). And I also have written or participated in apps made with Xcode (some of them in the iOS and Mac Stores, but not under my name). And in retrospect I must say: I wish I had written those Xojo apps in Xcode and Cocoa from the start, because over the years I had to add so many special things (Retina support, switch from Carbon to Cocoa, dealing with deprecations, proper Thread support and more), and while most (not all) of them were possible to accomplish with Xojo, it was a huge pain, and it would have been much easier with Xcode.

Still, RB is great for quick’n dirty and x-platform apps. But making a “proper” and modern Mac app that makes use of modern OSX features, Xojo is not the best choice.

With this conclusion, I come around to the gist of my previous post: Xojo is good for quick’n dirty apps. But who makes those on iOS? Since you won’t be likely to get them approved in the App Store, the only way to use those is to install them on your own iOS devices. And maybe on a few of your friends. Or inside your company. Yet, installing and maintaining them will be a pain. You’ll need some kind of update server for this, ideally. And you’ll be limited to 200 (Apple just recently upped the limit from 100) devices. So you can’t distribute it anonymously to everyone who likes to have it. It’ll only be working for small user circles. Which takes a lot of fun out of it.

Well, we’ll see how it works out. The needed update server might even come from RS, or might be even provided as a boilerplate Xojo Web app. Who knows (or did Xojo already announce to have something like this? I don’ know, but I hope they plan for it).

Hello Thomas,

reading your two last replies; what is your vision Xojo for Windows?

I have no perspective for on Xojo for Window. I keep hearing that it could fill the gap that VB has left, but somehow I get the impression that there’s not much happening, or Xojo Inc should be all over Windows development by now, welcoming all those 3rd party VB tool makers, etc. I don’t understand why this isn’t happening. But then, Windows is just not my world.

[quote=28063:@Thomas Tempelmann]Yet, people soon realized that to sell software on a Mac, you have to use Apple’s tools or they’ll just look crappy, usually. It’s like why no one writes Mac serious apps in Java, Pascal or Applescript any more, even though it’s possible: It’s just too much effort to make it “proper”, and the community is so small that you’ll be having a lot of questions with no resources to find for help. And try asking ANY Mac programmer what you need to write a Mac program. You’ll practically never hear: Use Xojo! No, everyone will say Xcode. So, why should anyone go with Xojo?
[/quote]

Your analysis seems fair and well founded, but one question struck me when reading the above paragraph, do you believe that that the Xojo IDE (written in Xojo) is not a serious, ‘proper’ Mac App and why?

Also my thought on the weakness of 3rd party is that to make ‘proper’ 3rd party components Xojo needs to be able to generate and use plug-ins written in Xojo - who would put resources into such a large project to write in C/C++ and to support OSX/Windows/Linux?

[quote=28063:@Thomas Tempelmann]All because Xojo gives the impression that this is a very small business which is mainly controlled by Xojo Inc, with no 3rd party marked that one would consider keeping an eye out for.
[/quote]

I do think that Xojo still has opportunities to change the world, just look at what DHH did with Ruby and how that has influenced and changed the Web development world (think MS MVC). However Xojo seems to be resource limited with both time and people and seems reluctant to open things up either by producing open standards or open source (even partially say for their own UI components). Xojo still works for me in some areas but it could be so much bigger and better for everyone. To give an example, again from the Ruby world, take something like Sinatra Look a DSL for producing web apps. to do the same in Xojo you need a command line compiler (no Xojo IDE!) a documented debugger API and the ability to either extend the language as Ruby does (blocks, instance_eval, etc) or to translate your own language into the ‘formal’ Xojo language. Where Ruby and others (e.g. Lua) have not done so well is in x-platform desktop UI relying on wxWidgets and that is Xojo’s strength; but Xojo is held back by restricting access solely through its own IDE by not having formal language definition and library definition (I don’t mean the Language Reference!), by not having a formal definition of the source code files, by not having a formal definition of the debugger API, etc… (Oh yes, these could be used for better testing too :slight_smile: )

Books will help, they will spread knowledge and provide the ‘feeling’ of a bigger ecosystem from the outside in, however to really get big it also needs to change from the inside out.

My point was that that’s what other people think about Xojo.

And while one can program most of the things with Xojo that one can with Xcode (even though some of it is extremely difficult in Xojo, such as animations), a few things are just impossble, such as pre-emptive threading.

Are you saying iOS apps made with Xojo cannot be accepted for the AppStore? If so, why?

So if we had a definitive list of the ‘impossible’ things and could avoid their use then we are clearly still ok.

Whilst I understand that everyone can be ‘here’ for different reasons, for me Xojo is ideal. I really do not want to invest huge amounts of time to learn the OS X frameworks. I have grown up with MASM/C/C++, Win SDK and more often now C#/.NET frameworks in the Windows world. I want to try some of my ideas x-platform and so far I can live without platform specific code and I can live without pre-emptive threading. The BASIC language is not my favourite however I can be productive enough with it and good class design and with extension methods I can even feel that I am almost using C# at times. I am certainly not a ‘beginner’ in software development and have arrived at my own strategy through experience and careful consideration - so maybe some good books and some good marketing/PR can change what others think…

Maybe don’t worry about what others purportedly think. Real programmers ship. All you need to know.

Sometimes (just sometimes :slight_smile: ) you have a way of ‘saying’ what I am thinking in just a few words. I still think some books may help those who are unsure though.

Agreed. People often look at other development environments through rose-tinted glasses, as if everything is perfect and easy and fun. Xcode is very powerful but Xojo has plenty of its own advantages.

I don’t think Thomas was saying this (there’s huge amounts of apps on the App Store that aren’t made using Xcode). I think he was saying that Xojo allows you to create apps very quickly and potentially that means nasty, poor quality apps that Apple won’t accept. But Xojo is just as capable of making high quality professional apps and I’ve no doubt that will be true of iOS too. It’s up to the developer.

Design, code, sell, learn what you could have done better and move on to the next project!

And I’ve seen some crap from Xcode - gone are any illusions that Xcode builds better apps… In fact half the stuff on the App Store right now is down right embarrassing and the apps are built with next to no care, love or consideration to users, all with Xcode. I’m not saying that I build exceptionally great apps, but I am saying that with Xojo I build better apps than a lot of stuff I’m seeing done with Xcode.

Absolutely. There’s a misconception that your choice of an environment can somehow suddenly enable you to churn out stunning apps, regardless of the effort you put in or the knowledge you have. But it’s up to the developer to do the job right!

In fact two things I saw recently, really illustrated this.

  • The about box has the default Apple credits template, “Testing - Hopefully, not nobody” & “Special Thanks - Mom”.
  • Help is either non-existent or directs you to a web page which doesn’t have anything on related to the application (yes I’ve forgotten to upload web pages before too), but the best one was an app that simply included a movie tutorial as the help… Erm, I want to know how to do something, I already know how to use the basic functions of the app!
  • Windows UI elements in a Mac app!
  • Half the elements Retina ready, while half are not.
  • Can’t figure out how to use the app - and see point above no help.
  • Huge, and I mean Huge apps for simple tasks, like 50~100mb for making a photo greyscale with a color segment.
  • Bad and untested Sandboxing code, where subsequent launches of the app run into issues or crashes, requiring the container be reset. I do realize that this is most likely due to the OS releasing access to files before (or if) the app has done so.

Indeed - There are advantages to using Xcode, don’t get me wrong, but yes it doesn’t matter what language you use, you can still produce awesome or crap apps.

Thanks, that was it.
And while if you make a crappy app on a desktop computer and can still publish it, you can’t with iOS, because there’s no way around publishing an iOS app outside the App Store, bar from requiring to jailbreak the device, or handle your own “beta” updating to up to 200 users from which you have to request their device IDs for this.

This made me check what were my top cases. My top 2 are:

  1. 64 bit support (3353)
  2. Compiling for Android (11151)

[quote=28474:@Rick A.]This made me check what were my top cases. My top 2 are:

  1. 64 bit support (3353)
  2. Compiling for Android (11151)[/quote]

Huh? What’s your point?

I don’t care about iOS. I want to be able to write mobile apps for corporate, indie and taylor made situations, not Apple Store. If you know Android, it fits this profile. You could write a cheap tablet client software for your server software, and sell 300 to a corporation. No xxx Store involved or approval needed. I was checking If I had iOS listed by any chance. Answer = no. :slight_smile:

Apple have an enterprise licence that lets you do this.

ROFL! Have you ever tried to apply for one? Or know someone who did? Seriously, Apple hand-selects those. If you’re not a huge company with at least a team of 20 system admins, there’s no way you’ll get one, and certainly not if you’re a small developer who writes a program FOR such a company. Though I’d like to be proven wrong.