How to build a mac application like grammarly - macos

What is the tech stack used to build the mac app (not asking about the business logic, but more of UI framework)?
Is there any open-source code which can be leveraged to build a POC?

Related

Is Flutter just for UI development?

In Flutter's official web page, Flutter is described as below:
"Flutter is Google’s UI toolkit for building beautiful, natively compiled applications for mobile, web, and desktop from a single codebase."
My question is
1. Is it just for cross-platform UIs?
2. If it is, then how can you integrate with data models and all hardware features?
Thanks in advance!
Flutter is not just a framework that you can build great UI with. It uses the programming language Dart and the code is compiled to native platform code. It's not just for UI development as Google uses Flutter to make some of its applications like Stadia. Other companies like the New York Times build their apps with Flutter and those apps have functionality and they're entirely built with the Flutter framework.
So back to your question. It's not just for building beautiful UI's. Even in the documentation, it says:
natively compiled applications
So you can use Flutter to make cross-platform, native applications, not just for UI. It supports popular things like Redux, BLoC pattern, and many more for the reactivity of your app.
I recommend you take a look here to see some of the apps fully built with just the Flutter framework.
Flutter is UI plus business logic which means frontend, hence Flutter is a frontend SDK. Many people say that Dart is used for backend, but that’s not true, Dart is purely used for frontend logic and Flutter is indeed, 100% frontend. But…native Android and native iOS development too are “just” frontend, purely.
Because, the server side logic of any app is written using a backend language/framework which is not a responsibility for a frontend person (Android, iOS, Flutter or any other developer). Backend technologies to be used always depends on the company’s preferences. And remember, writing your backend in either of these frontend languages is not good for long-term lifespan of your app, most companies are not stupid, that they don’t use Kotlin or Dart or Swift in the backend to save money, they know that, ultimately, doing that will cost them even more than hiring backend devs separately because it is very rare (almost impossible) to find expert people who can code backends in Dart/Kotlin/Swift.
While JS has many existing, widely adopted stacks for backend, so the above is not same for web devs, they’ll be paid more for being a full-stack person.

Buiding iOS app from Xamarin Android app

I am an iOS developer & I have to start work on Xamarin platform project for iOS. So I have some basic queries as a beginner in Xamarin. I have already initiated study from Link1 Link2
App is developed in Android On Xamarin & now I have to develop the same app for iOS(iPhone+iPad).
So my question are
Can I reuse the C# code written for Android app in iOS?
I have to redesign the UI for iOS devices? (As per my knowledge "YES" plz
confirm if I am wrong)
.Any idea or any suggestion would be great for me.
Thanks
Well, that depends.
If you had been using Xamarin.Forms you would only need to build one project which would then compile into a .apk (Android) and .ipa (iOS) distribution binary. Thus, by choosing Forms, you would only need to design and build the UI once as logic and UI is shared between all platforms.
On the other hand, you can chose to build your application using Xamarin.Android and Xamarin.iOS. In doing so, you can share the logic (e.g. ViewModels, Services, Converters) only. The rest will have to be built platform specific. So in the ladder case, you wouldn't be able to reuse the C# code which you've built for Android on iOS, as the platforms differ.
As Demitrian said earlier, using Xamarin.Forms allows you to build a single project.
If you want to use Xamarin.Android and Xamarin.iOS, which I do, you can build a solution containing an Android project and an iOS project, then add a Shared Project to your solution containing the common code, like classes, models, HTTP actions, etc. That way, you can save some programming time, while still taking advantage of each platform's specificities.

Integrate Azure Mobile Services in Xamarin.Mac

By the time I'm writing this, I'm working on a Xamarin cross-platform app (iOS,Android and Windows Phone), using Azure Mobile Services. There is interest of also developing Mac OS X version of this app.
Is there a way to use the Azure for the OS X app, because I can't find anything on the web? Please, be descriptive as possible :)
There is not currently Xamarin.Mac support in Mobile Services. If you look here (https://github.com/Azure/azure-mobile-apps-net-client/tree/master/sdk) you will see there is a Xam.iOS, Android, and Forms project.
You can add a feature request for Xam.Mac, or make an open PR that adds in a Xam.Mac project. I'd assume the main PCL component will work and its just a matter of adding the Mac specific wrappers where needed. I'm not sure how much dev work that would actually entail though to say if its feasible or not.

Hybrid app with native iOS features

I'm trying to build a hybrid app with some native features like geotagging, notifications and offline storage. So far in my research I got the feeling that I will need xCode to access the native features on iOS.
Is there a way that I can skip that step? I have found that Cordova API, supports native features with JavaScript, but also I have found some contradicting statements witch suggest that I also need to also use xCode.
Thank you
If you want to build an iOS-App you'll need Xcode's command line tools to build, run and deploy your App. So you can't skip this step.
The Steroids tooling lets you develop your app without the need for Xcode (or Android Studio). You use a companion app from App Store to develop locally, then an online Build Service to create a stand-alone package. The wrapper provides access to many native APIs, including all Cordova core plugins.
(Disclaimer: I work for AppGyver.)

Does Mac App Store accept application written in Python/Java/Ruby?

Does Mac App Store accept application written in Python/Java/Ruby?
The Good News
Yes, you can submit a Java app to the Mac App Store. Not true in the past, but it is true at least as of now in 2013.
One example is the successful MoneyDance personal finance app currently available for sale in the Mac App Store.
The Bad News
Preparing and submitting your app is neither simple nor easy. You have to jump through some hoops.
Your app cannot depend on Java being installed on the Mac. You must include a JRE (Java Runtime Environment) within your Mac app.
You must write a thin Objective-C wrapper around your Java app. The source code and examples/tutorials are available on the web.
Like any other app, you must go through all hassle of the complicated build and deployment rigmarole with security restrictions Apple requires of any Mac App Store app.
More Info
Two articles, Take your Java application to the Mac App Store and Forking the OpenJDK for fun and profit, by Marco Dinacci. These articles may provide other useful information, but fortunately their discussion of forking the JDK is now outmoded. He and others have provided the needed patches now incorporated in the official releases.
How to Create a Mac OS X Installer for a Java Application (Updated for Mac OS X 10.8 — Mountain Lion) by Dem Pilafian of Center Key Software.
Packaging a Java App for Distribution on a Mac (Oracle)
Submitting to the Mac App Store (Apple)
By the way, you can use both Swing and JavaFX in your app. JavaFX is now bundled with Java, at least as of Java 7 Update 40 according to these Release Notes.
Java 9
The newly released Java 9 should make this process of wrapping an app with a runtime even easier and better.
Modules
Java 9 brings “modularization”, Java Platform Module System (JPMS), where the approximately 5,000 classes bundled with a JVM are grouped into about a hundred chunks known as modules. You can include only the modules containing classes actually used by your particular app rather hauling along every library. If you don't use JSON or CORBA, then you need not include the JSON or CORBA related modules.
The new jlink tool does this work for you, to assemble and optimize a set of modules and their dependencies into a custom run-time image. As a bonus, some link-time optimization work is performed to make your app launch faster.
These features are supported on 64-bit macOS systems, along with other platforms.
Native compiling
Java 9 also brings new support for native compiling, to build an app optimized for specific hardware. But this ability is experimental, and not yet ready for production use.
Update, as of 2018
Oracle has announced the end of web deployment technology, including Java Web Start, the previously recommended avenue for desktop apps. So now, Oracle expects all Java apps to be delivered bundled with a JVM such as is done with the jlink tool mentioned above.
So, the process of wrapping an app with a Java runtime that was something of a rarity just for the Apple App Store is now mainstream. Oracle expects any Java-based desktop app to be installed this way.
Yes and no. Apple doesn't care what language your App is written in, but it cannot depend on or install anything outside of the binary you submit to Apple. The relevant guidelines are below:
2.14
Apps must be packaged and submitted using Apple's packaging technologies included in Xcode - no third party installers allowed
2.15
Apps must be self-contained, single application installation bundles, and cannot install code or resources in shared locations
2.16
Apps that download or install additional code or resources to add functionality or change their primary purpose will be rejected
So, while this means you can't depend on Ruby or Python, you could use a framework like MacRuby to build your app in Ruby and embed the Ruby interpreter. Speaking for MacRuby, apps have been successfully submitted to the Mac App Store this way.
Ruby ? Yes !
Apple already accepted one of my apps written in MacRuby.
AFAIK, Cocoa will allow you include code written in different languages (including Ruby and Python, but not Java I don't think).
Check the Apple SDK's for more info, but I believe (thanks to Cocoa) it's not a problem.
For Python apps, I wrote a comprehensive article explaining how to build and submit such apps to the Mac App Store. It includes source code and build scripts for a barebones example app that I have successfully submitted.
Submitting a Python App to the Mac App Store
Possibly Java, if you bundle the Java application into a mac application.

Resources