Stan's assetsStan's assetsStan's assetsStan's assetsStan's assets

Introducing IOS Native Pro

2018-05-12 19:40:07

Hello, I want to introduce our new product: IOS Native Plugin pro.

We have been working on Unity plugin for last 3 years, and since we have started the goal was to deliver a great and easy to use products. We grew very fast and created a lot of Unity Native plugins. We are also doing our best to support all our products. But, (“there is always but, right?”) more experience we gain than more mistakes in original design we realize. Of course, we try to fix and improve, but carry a big luggage is always hard. So I decided to pivot, and create the best product we can without looking back, just make and design everything from scratch. I told this little story, just for you to understand a context why we had created this product. We will keep supporting all our products, and even more, customers who have already had the IOS Deploy / IOS Native can upgrade for free to IOS Deploy pro / IOS Native pro.

The main principles of IOS Native Pro:

  • Full Open source. That's pretty simple, I do not think not an open source product can work for the developer community. If you are a junior developer, we will be happy if you learn something with our code. If you are a senior developer, we do not want you to have a “back box” in your project and we always open to critics and suggestions.

  • Strict code convention. You can read more about convention rules here. As our code will be a part of your project, the goal of the convention was:

    • You will never mix your and our classes

    • Filename / Class name itself will tell you where it belongs

    • By only looking on the class signature you will be able to understand how to use it properly.

    • Every public method and class should be documented. Of course we  have an online documentation and guides. But sometimes reading the method description is all you want to know.

  • Matching the original API. Since the plugin is the kind of your bridge to a native code. It should match that native code as close as possible. So, for example, ISN_SKPaymentQueue is a match to the Apple SKPaymentQueue objective-C class

  • Nice looking and user-friendly settings editor. This one is pretty simple with any third-party plugin you are adding to your cool project, you want to have a centralized,  good-looking, and intuitive settings editor for it.

  • Ability to enable/disable modules. This one also as simple as it is. You only want plugin parts that you are using. So if some feature requires additional frameworks or files, you want to have it disabled if you do not have the intent to use it in your project.

  • Automatic Xcode project configuration. I know how inconvenient it is to alter the Xcode project settings every time you do a Unity build. Besides if you have to alter 1, 2 or 10 setting every time you build, it’s just a matter of time when you will forget something and upload your build without some feature properly function. I am strongly convinced that if plugin offers any function, it should set up everything, so after compilation is done, you only need to press a “Build” button. We simply will not offer a feature before we make sure we not adding any unnecessary steps to your build and run flow.

I truly hope you will enjoy using our new product! And would love to hear your feedback.