Carlos Roberto Posted May 12, 2020 Posted May 12, 2020 Hello! Forgive my English, I'm not a native English speaker. Some time ago, I purchased Affinity Design for my Mac and I was really impressed about how the software is well optimised on Macs compared to others, like Illustrator. After a quick search, I found out that Affinity is written in C++. I'm currently a computer science student living in Brazil, and very interested in coding native Mac apps, and also well optimised like the Affinity ones. I would like some guidance to where should I start? Is C++ really the way to go? Java? Or perhaps Swift is good enough for my needs? Keep up the good work, Affinity! Quote
v_kyr Posted May 13, 2020 Posted May 13, 2020 Hello, in case of native Mac apps for the Apple platform you should use Swift, Objective-C or C/C++, since those are what is mainly directly supported by the Apple programming APIs and Apple's XCode. From these languages Swift is nowadays probably the most fun (also more modern) and easier to learn prog language than let's say Obj-C or C++. On the other side, if you want to learn a native compiling, performant and good optimizing programming language, which is also usable across different platforms (Win/Mac/Linux) then C++ is still hard to beat here. - However C++ has overall a steeper learning curve and thus is more difficult to learn than the other two. Java is pretty good as a teaching language (for the academic learning field and OO in general etc.), it's also still one of the most/widest used for distributed programming and certain other fields, since due to it's virtual machine (it's runtime system) it's very portable among platforms. Though I wouldn't count it to be what you call a native Mac app compiling language here. Of course there are also other interesting and modern languages like for example GO and Rust etc. In short, the choice is yours, with what you finally want to get your feet wet. Quote ☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan ☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2
Carlos Roberto Posted May 13, 2020 Author Posted May 13, 2020 7 minutes ago, v_kyr said: Hello, in case of native Mac apps for the Apple platform you should use Swift, Objective-C or C/C++, since those are what is mainly directly supported by the Apple programming APIs and Apple's XCode. From these languages Swift is nowadays probably the most fun (also more modern) and easier to learn prog language than let's say Obj-C or C++. On the other side, if you want to learn a native compiling, performant and good optimizing programming language, which is also usable across different platforms (Win/Mac/Linux) then C++ is still hard to beat here. - However C++ has overall a steeper learning curve and thus is more difficult to learn than the other two. Java is pretty good as a teaching language (for the academic learning field and OO in general etc.), it's also still one of the most/widest used for distributed programming and certain other fields, since due to it's virtual machine (it's runtime system) it's very portable among platforms. Though I wouldn't count it to be what you call a native Mac app compiling language here. Of course there are also other interesting and modern languages like for example GO and Rust etc. In short, the choice is yours, with what you finally want to get your feet wet. I understand! I started messing around with Java because a teacher recommended it, and I really enjoyed it! However, I really wanted that optimisation that theses native apps have. In my case, I believe the best way to go is Swift for now. At first, I was in doubt because I thought that with Swift, you could only post your apps at the Mac Store, and since I plan to work on open source projects, paying is not something that I want to do at the moment. I am really grateful for the help! Wish you a good day, friend. Quote
v_kyr Posted May 13, 2020 Posted May 13, 2020 Nowadays when programming inside the Apple world, Swift is a good and probably defacto choice, since it's also the language Apple is pushing and working the most on today (see the App & UI Kit and their other APIs etc). With Swift you can of course also equally good program/build quite well CLI based applications, not just GUI based apps. Further the Swift compiler does generate quite good optimized code too, sometimes even faster/better code than the Obj-C compiler generates. Have a good time (Swift)ing around. Quote ☛ Affinity Designer 1.10.8 ◆ Affinity Photo 1.10.8 ◆ Affinity Publisher 1.10.8 ◆ OSX El Capitan ☛ Affinity V2.3 apps ◆ MacOS Sonoma 14.2 ◆ iPad OS 17.2
Brent Pedersen Posted October 26, 2021 Posted October 26, 2021 I've made an interactive PDF with Affinity Publisher. Every time I update it, I have to export a new copy and ask my users to replace the old one with the new. I'd love to make the same content as an iOS app that would update automatically. Since it's just text and graphics, web links, and page jumps I wonder if it would be hard to learn to do that. Would I need to do that in Swift? Quote
Old Bruce Posted October 26, 2021 Posted October 26, 2021 15 hours ago, Brent Pedersen said: I've made an interactive PDF with Affinity Publisher. Every time I update it, I have to export a new copy and ask my users to replace the old one with the new. I'd love to make the same content as an iOS app that would update automatically. Since it's just text and graphics, web links, and page jumps I wonder if it would be hard to learn to do that. Would I need to do that in Swift? Kind of sounds like you are wanting to use HTML and a web browser. Are you wanting to push updates to your users without any sort of effort on their part? Quote Mac Pro (Late 2013) Mac OS 12.7.6 Affinity Designer 2.5.7 | Affinity Photo 2.5.7 | Affinity Publisher 2.5.7 | Beta versions as they appear. I have never mastered color management, period, so I cannot help with that.
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.