Creating iOS application on Linux

Not to mention safer, unless you have money to buy new hardware just for your hackintosh/mac you will probably try to dual boot and stand a chance to mess up your partitions or something.
Safer... don't make me laugh.

Btw whoever insisted on new? If you knew so much about Macs, you'd know that they have a long usage lifespan i.e. a cheap second Mac would be more than enough to get started (e.g. 2009 / 2010 Mac mini or iMac would certainly suffice). Only thing to really check is that the hardware can run the latest OS and has a minimum of 8GB.
 
Safer... don't make me laugh.

Btw whoever insisted on new? If you knew so much about Macs, you'd know that they have a long usage lifespan i.e. a cheap second Mac would be more than enough to get started (e.g. 2009 / 2010 Mac mini or iMac would certainly suffice). Only thing to really check is that the hardware can run the latest OS and has a minimum of 8GB.

Hell yes a VM is safer than setting up dual boot. And regarding price looking at gumtree most of your suggestions cost more than R5000 and then they have only 4GB ram.
 
Not to mention safer, unless you have money to buy new hardware just for your hackintosh/mac you will probably try to dual boot and stand a chance to mess up your partitions or something.

Dual-boots are simple enough, but sure there can be risks. I was thinking the VM route would probably be most sensible for someone who doesn't want to spend money.

There are many second hand Macs that you can get for a steal; look for a Mac mini or even an older iMac 21". You certainly don't need the top of the line to start out with.

Fair, but I've noticed after looking around on Gumtree and stuff, older Macs aren't going for next to nothing. You're still looking at coughing up a few grand for a Mac from 10 years ago.
 
If you try MacOS in a VM you will quickly decide that it is not for you :ROFL:
 
Dual-boots are simple enough, but sure there can be risks. I was thinking the VM route would probably be most sensible for someone who doesn't want to spend money.



Fair, but I've noticed after looking around on Gumtree and stuff, older Macs aren't going for next to nothing. You're still looking at coughing up a few grand for a Mac from 10 years ago.
What exactly is driving your need to build iOS apps? ... because if this part of a career objective then it's an investment you probably need to prioritise.

If however it's merely to play around with the Swift language to see if its something you may like; then I suggest you avoid iOS for now and maybe just consider building a Linux terminal app, a server backend and maybe even a GTK+ app.
 
What exactly is driving your need to build iOS apps? ... because if this part of a career objective then it's an investment you probably need to prioritise.

If however it's merely to play around with the Swift language to see if its something you may like; then I suggest you avoid iOS for now and maybe just consider building a Linux terminal app, a server backend and maybe even a GTK+ app.

Don't know about OP but at the moment, nothing is driving my need really. I had a few ideas of apps that I want to write for my own personal use when I have time, and I have been toying with the idea of selling them on an app store to someone who might find them useful. iOS users are generally more willing to pay for apps, so it makes sense to support iOS as well.

If I get to the point where I want to dive full into it, it would obviously require getting at least a Mac and probably an iPhone / iPad to field-test, but I'm not at that point yet. I have a different career, programming of this kind is more of a hobby.
 
I highly recommend the 2nd hand Mac Mini route. The resell value on them are great so worst case you walk away with whatever you put in.

I was lucky, got a good deal on a late 2012 Mac Mini with 8GB Ram, magic mouse and wired keyboard included for only R5000. Just replaced the HDD with a SSD and then the little beast became usable. The normal HDD was very infuriating to work with. (cold boot, open project, build would take up to 15 mins)
Agreed brilliant little machines; such a pity Apple still hasn't released a new model.

Like I said, you can do Xamarin but still need a Mac of some kind to do the builds. You can even do Xamarin Dev on Mac now. The Visual Studio for Mac IDE is GREAT! Xcode sucks donkey balls, but you need it to do the story boards. I felt a lot more at ease using App Code (Jetbrains). They sure know how to IDE.
Xcode has gotten quite a bit better with Xcode 10; certainly much faster compile times and a lot more stable. Can't talk for storyboards and xibs, because I've always actively avoided that; far better and more flexible to learn how to construct interfaces in code.

Agreed Visual Studio for Mac is a good product but still very rough in comparison with its Windows counterpart, and re AppCode -- I'm not a fan.
 
Interesting, I didn't know that. The impression I got was that you could do it from your Windows machine.
Yes you can, but you need to connect your Windows Xamarin to what is basically a Mac based "build host", but this is buggy and slow. Multiple clients can theoretically use the same build host. I eventually gave up before insanity set in and just bought a Mac.
 
Don't know about OP but at the moment, nothing is driving my need really. I had a few ideas of apps that I want to write for my own personal use when I have time, and I have been toying with the idea of selling them on an app store to someone who might find them useful. iOS users are generally more willing to pay for apps, so it makes sense to support iOS as well.

If I get to the point where I want to dive full into it, it would obviously require getting at least a Mac and probably an iPhone / iPad to field-test, but I'm not at that point yet. I have a different career, programming of this kind is more of a hobby.
If its just for dabbling, and/or to get familiar with Swift, then I'd even go so far to suggest Silver from RemObjects, which is in strict terms more of a variant of Swift that allows you build apps using the .NET, Java, and Android framework APIs.

The caution however is that their rendition of Swift is not a perfect match to the actual Swift language -- basically there is a bit of code incompatibility, which granted RemObjects is trying to address.

Still its an interesting take on this & they have an IDE for Windows, including support in Visual Studio.
 
Last edited:
If you want to build cross platform, pick a cross platform framework as droid suggests.
Do take a look at Google's flutter, swift, java and objc support for both android and iOS.
https://flutter.io/
 
If you want to build cross platform, pick a cross platform framework as droid suggests.
Do take a look at Google's flutter, swift, java and objc support for both android and iOS.
https://flutter.io/
I wasn't really promoting cross platform, but rather suggesting an option for someone who wants to play around with a Swift like language variant in Windows.

Personally I not a big fan of cross platform framework apps because they all suffer with a lot of major compromises. Building native apps is still IMO are the preferred route as you're not limited by what the cross platform solution supports. As for Flutter, I think thats far more of an interesting solution for Android development than it is for iOS, because their iOS design ethos is arguable no better than React Native.
 
I wasn't really promoting cross platform, but rather suggesting an option for someone who wants to play around with a Swift like language variant in Windows.

Personally I not a big fan of cross platform framework apps because they all suffer with a lot of major compromises. Building native apps is still IMO are the preferred route as you're not limited by what the cross platform solution supports. As for Flutter, I think thats far more of an interesting solution for Android development than it is for iOS, because their iOS design ethos is arguable no better than React Native.
For most use cases, designing a native app isn't worth the time/resources though.
https://medium.com/@matthew.smith_6...anged-our-company-for-the-better-271ddd25da60 is interesting.

In regards to design ethos, do you mean code wise or GUI?
 
For most use cases, designing a native app isn't worth the time/resources though.
https://medium.com/@matthew.smith_6...anged-our-company-for-the-better-271ddd25da60 is interesting.

In regards to design ethos, do you mean code wise or GUI?
I disagree, plus I'd counter argue that any app that isn't worth designing a native app for simply shouldn't exist. Majority of the garbage apps are all written in these pseudo cross platform solutions.

Design ethos points is not only about the UI affordances, but also how they have chosen to integrate (or not in many cases) with a platform's native APIs. In the case of both Flutter snd React Native its a plugins solution under the guise of a real cross platform project -- yuck!

I write a lot of Native code for a number of different platforms and it's really not that difficult, because becoming competent around the APIs is a far greater challenge than learning the language.

I've certainly never seen any cross platform codebase that proves there's a quantifiable benefit to avoiding native builds without some significant compromise, usually sacrificing native API integration.
 
I disagree, plus I'd counter argue that any app that isn't worth designing a native app for simply shouldn't exist. Majority of the garbage apps are all written in these pseudo cross platform solutions.
Disagree on that, don't think we can both agree on this. Just because a lot of garbage apps are written using cross-platform, doesn't mean cross-platform is bad. That's like saying the Android/iOS store is garbage because there are so many useless apps in it.
Design ethos points is not only about the UI affordances, but also how they have chosen to integrate (or not in many cases) with a platform's native APIs. In the case of both Flutter and React Native its a plugins solution under the guise of a real cross platform project -- yuck!
So UI wise: UI will be the same on Android and iOS, with both having notifications integration, etc. (EDIT: You can edit how it's displayed etc. to customize your app)
In regards to how they integrate, can't really comment on that. You saying yuck in regards to it, tbh it's better than nothing and faster and easier to maintain than having two separate apps.
I write a lot of Native code for a number of different platforms and it's really not that difficult, because becoming competent around the APIs is a far greater challenge than learning the language.
You're far above the average dev in skill. Remember, a majority of devs will be the cheapest people that can fulfill the task well enough for the business. Most businesses will not pay that extra bit of money so you can optimize the app a little bit more as it doesn't have enough of a return for them, this not taking into consideration if the dev can actually do so.
I've certainly never seen any cross platform codebase that proves there's a quantifiable benefit to avoiding native builds without some significant compromise, usually sacrificing native API integration.
You do know that Flutter compiles into platfrom specific code, unlike React which uses a JS bridge? Admittedly Flutter uses its own widgets instead of OEM but I'd take that as a plus.
Another interesting article: https://hackernoon.com/why-native-app-developers-should-take-a-serious-look-at-flutter-e97361a1c073

Again, if you have time/resources, native should near always be better than cross-platform, but budget/time constraints.
 
Last edited:
Disagree on that, don't think we can both agree on this. Just because a lot of garbage apps are written using cross-platform, doesn't mean cross-platform is bad. That's like saying the Android/iOS store is garbage because there are so many useless apps in it.
You're making this too easy for me... Yes both of those stores are filled with garbage, and their idiotic app models have destroyed the notion of any profit for the lone developer in the mobile app space. Historic issue if you missed it; if the priority is boasting about how many apps are in store; then even garbage matters.

Ps. I certainly have never considered mixing my good stuff with garbage. :sneaky:

So UI wise: UI will be the same on Android and iOS, with both having notifications integration, etc. (EDIT: You can edit how it's displayed etc. to customize your app)
In regards to how they integrate, can't really comment on that. You saying yuck in regards to it, tbh it's better than nothing and faster and easier to maintain than having two separate apps.
Weird correlation: all these cross platform have the worst UIs -- wonder why?

You're far above the average dev in skill. Remember, a majority of devs will be the cheapest people that can fulfill the task well enough for the business. Most businesses will not pay that extra bit of money so you can optimize the app a little bit more as it doesn't have enough of a return for them, this not taking into consideration if the dev can actually do so.
In most cases the decision making people that buy into these cross platform fairytales have very little actual experience as a developer. Buying into fairytales is the problem, not somebody's acumen.

You do know that Flutter compiles into platfrom specific code, unlike React which uses a JS bridge? Admittedly Flutter uses its own widgets instead of OEM but I'd take that as a plus.
Another interesting article: https://hackernoon.com/why-native-app-developers-should-take-a-serious-look-at-flutter-e97361a1c073
I know you're not asking me that question. Ps. plugins.... mmmhhh wonder if its so "perfect" then why ever do they need that...? ...and why explain how a widget is not a UIView... Fairytales...

Again, if you have time/resources, native should near always be better than cross-platform, but budget/time constraints.
The problem is that equation is never assessed; somebody buys into the marketing fairytale and a proper assessment is never done. While you at it remind me again which costs more: development, maintenance or dare I say it providing a good customer experience.

Also where's this verifiable proof that native builds take more time, cost more, oh and please throw in verifiable proof that a major portion of a codebase is actually reusable cross platform. Fairytales...
 
Last edited:
You're making this too easy for me... Yes both of those stores are filled with garbage, and their idiotic app models have destroyed the notion of any profit for the lone developer in the mobile app space. Historic issue if you missed it; if the priority is boasting about how many apps are in store; then even garbage matters.

Ps. I certainly have never considered mixing my good stuff with garbage. :sneaky:
:p
Agreed, too much garbage on them, what I mean is that there are good apps on it.
Weird correlation: all these cross platform have the worst UIs -- wonder why?
They do? Haven't noticed that. Most cross-platform use a nice Material Design that works perfectly well on both platforms. Again, I only have iPad equivalent apps and not iOS ones.
React Apps are meh though, most of them are badly styled by the devs to begin with, not following proper UI design patterns. Same way there are good and bad sites.
In most cases the decision making people that buy into these cross platform fairytales have very little actual experience as a developer. Buying into fairytales is the problem, not somebody's acumen.
I answered you in the PM, hope I made myself clearer in it? Not saying there aren't trade-offs, just that sometimes those trade-offs are worth it.
I know you're not asking me that question. Ps. plugins.... mmmhhh wonder if its so "perfect" then why ever do they need that...? ...and why explain how a widget is not a UIView... Fairytales...
Lol, the biggest gripe with performance on React is the JS bridge. Flutter removes that bridge, so it's faster in-app. Fairy tale thing again, native implementation compiled aot would be better of course, but trade-off for faster product launch/easily cross-platform consistency. :p

And yes, agreed, plugins. Best solution they could come up with I guess. Again, trade-offs.
The problem is that equation is never assessed; somebody buys into the marketing fairytale and a proper assessment is never done. While you at it remind me again which costs more: development, maintenance or dare I say it providing a good customer experience.

Also where's this verifiable proof that native builds take more time, cost more, oh and please throw in verifiable proof that a major portion of a codebase is actually reusable cross platform. Fairytales...
Small projects, not large ones like you work on where the majority of the code base is non-GUI.
https://medium.com/all-technology-f...t-dev-tools-for-your-app-project-47d0abafee81
But I prefer this article:
...
Is quick and cheap cross-platform development a myth or a reality?

Cross-platform development is usually cheaper and takes up fewer resources compared to native development. However, there are certain pitfalls one can only avoid by understanding the basic principles of price formation.

Always keep in mind that timescales and prices are, first and foremost, governed by the difficulty of the task and the end quality of the solution. Let’s say that to develop our cross-platform product we hired one specialist who is skilled in HTML, CSS, JavaScript and has some PhoneGap experience. Let’s regard this specialist as an abstract resource unit (say, a man month).

Two such units are required for native app development – for iOS and Android. As a result, 2 man months are required for the native project, and 1.5 – for the cross-platform project.

A fair question is in order: “Why one and a half instead of one”? Sadly, in reality a cross-platform app that performs nicely on iOS will work poorly on Android as all browser engines have their own specifics, and, as a result, one half of a man month might be spent on optimizing the app for Android.

Here is an estimate of mobile app development cost in case of both native and cross-platform approach in the form of two tables. The results are loosely based on on the average hourly rate of freelancers from the upwork.com international database in USD.
...
Summary

By all means, go for native development if:

  • Your application requires full access to the phone’s resources and services;
  • You want your app to be as responsive as possible;
  • The app has to work offline;
  • Your app should have maximum efficiency when using the device’s hardware.

Cross-platform development should be your choice if:

  • You can live with lower responsiveness;
  • You do not intend your app to contain complex animation or carry out calculations;
  • Your app requires stable Internet connection to download content;
  • You need to enter the market quickly to test your idea;
  • You have a website and you want to turn it into an app for a minimal price.

The final choice of your strategy is determined by individual circumstances, something for which no article can give you a universally applicable answer.
http://www.businessofapps.com/cross-platform-vs-native-app-app-development-pros-and-cons/
And I agree with you, poor planning is a key reason why projects fail. Writing a cross-platform app or native app depends on your use-case, and if you can't properly analyze your use-case and buy into marketing/buzzwords instead of actual implementation, then you've failed as a project manager. Again, sometimes it's not that easy either, sometimes the client forces you to go the cross-platform route (heck, even had clients that force WP usage when they clearly only need a static site, so loading all that additional garbage when not needed, you could argue that it's bad that you didn't convince your client, but your client will just go to the person who does it and you lose out, so it's easier just to use it if the draw-back isn't too large).

Personally, I don't really like using React very much when most of my projects only need to done for e.g. Android as I am building it for myself. It's quicker to quickly spin up an android app bundle project that is similar to my intention as a base, and build/customize my own thing from there.
 
:p
Agreed, too much garbage on them, what I mean is that there are good apps on it.

They do? Haven't noticed that. Most cross-platform use a nice Material Design that works perfectly well on both platforms. Again, I only have iPad equivalent apps and not iOS ones.
It doesn't take much Google effort to see that a lot of users don't share your point of view. Material design is awful idea; same design everywhere is never a good approach with UI/UX.

And yes, agreed, plugins. Best solution they could come up with I guess. Again, trade-offs.
So how exactly is that a positive thing?

Small projects, not large ones like you work on where the majority of the code base is non-GUI.
Huh... mobile apps where the code base is non-GUI? Example?

Did you read this article? Certainly plays into my conclusions i.e. crappy UX is non native.

So in your...
But I prefer this article:
... quote, the conclusion is that we should go with non-native if:
  • You can live with lower responsiveness;
  • You do not intend your app to contain complex animation or carry out calculations;
  • Your app requires stable Internet connection to download content;
  • You need to enter the market quickly to test your idea;
  • You have a website and you want to turn it into an app for a minimal price.
... sounds like the recipe for a crappy UI / UX -- which is quite typical for a garbage app -- clearly I'm missing the point you're making?
 
Last edited:
Top
Sign up to the MyBroadband newsletter
X