A Page on SeattleClouds is like a page on a website (screen, view). A page is displayed full-screen on the device and by using the app end users move from one page to another. On SeattleClouds website users are able to create and configure pages, set them as root pages for the app (placing them on tabs for example) and create links between pages (so that one page can be opened from another).
A Page Type defines how certain page should look and work. Typically a Page Type has settings which differentiate one page from another of the same Page Type. You can think of a Page Type as a class, and page as an instance of that class.
A Module is a collection of custom Page Types and other features. It also serves as a unique name space for your custom Page Types and features.
A Module Binary is a package of your custom native code and resources that implement custom Page Types and features of that Module.
You can find more technical details on how to implement custom Page Type in native code when you download an SDK project (look for a README file).
How to create a custom native Page Type
To create a custom Page Type you need to create a Module first. If you already have a Module and want to reuse it you can skip the first step.
Create a Module
Go to My Modules page, click on CREATE MODULE button and fill out the form. Module ID must be unique. It's better to make it short, because you'll have to prefix all native class names with it. Make sure you check Requires binary check box to be able to create native Page Types for this Module.
After you create a Module you'll see overview of it's properties.
Create a Page Type
Click view module's page types in overview of a Module on My Modules page, then click CREATE PAGE and fill out Page Type metadata.
After you click the Submit button go back to My Modules page and you'll see a new Page Type added to your Module.
NOTE: when Page Type status is In-Development only you will see it and be able to add it to your apps. No one else will be able to see and use your Page Type until its state is Published.
Add a page of newly created Page Type to an app
To be able to develop and test your custom Page Type you need to add it to one of your paid apps. If you don't have any apps, create one and make sure it's paid (added to a plan or bought for full price). Add the page as a tab or make it accessible via a link to be able to test it on device.
Request an SDK Project
To actually implement your custom Page Type you need to write native code in an SDK project.
To request an SDK project go to My Modules page, click upload binary file in overview of your Module, clickREQUEST SDK PROJECT, select the app you added your page to in previous step and then click Continue.
Complete remaining steps of the submission process and submit your request. After a few minutes you'll receive a link for downloading the SDK project by email.
Implement your custom Page Type in native code
When you open your SDK project you'll find a Custom Module folder. This folder contains only your custom code and resources and you can add or delete any files there. To help you in development we generated a couple of examples. You can find more technical details on how to implement your custom Page Type in native code in theREADME file.
Upload your Module Binary
After you're done with development and testing you need to build and upload your Module Binary to SeattleClouds website.
To build the binary run %YOUR_MODULE_ID%ModulePackage Xcode scheme. You'll find your Module Binary package in %PROJECT_DIRECTORY%/CustomModule/%YOUR_MODULE_ID%ModulePackage.zip.
To upload the binary go to My Modules page, click upload binary file in overview of your Module, click UPLOAD and upload binary zip file. Then your Module binary will be validated by our system. You can check for validation status onMy Modules page in Binary Details section (you will also receive an email when validation succeeds or fails).
Publish your Page Type
After Module validation is successfully completed you'll be able to publish your Page Type. To do this click view module's page types in overview of your Module on My Modules page, then click on your Page Type. Change your Page Type Status from In-Development to Published. Now it be used and/or purchased by other users.
You need to follow the steps described above (create a module and a page). Then while you're on step 5 (Implement your custom Page Type in native code) you can add the SDK.
See the README file inside the SDK project that you download for technical details of how to implement and build the module files.
ProTip: if your SDK comes in form of a static library binary you need to add it to your module target so that it got bundled into resulting module library. If the SDK is in form of a framework you'll have to convert it to a static library and then add it to the module target.
All the steps must be obvious for you but it is complex for me so please be patient in my questions.
1. In my SkobblerDirectionalNavigation page type I cannot seem to enable a checkbox in the section Supported platforms
2. "Then while you're on step 5 (Implement your custom Page Type in native code) you can add the SDK." When I am on the Module page I can upload a binary file. Is that what you mean? If I am on the right page here? : http://seattleclouds.com/mymodules.aspx?action=sdk&module=Skobbler I need to request a SDK Project? When I want to request a SDK Project: I have created a new app but I cannot find it in the selection box. Does it need a certain status?
3. Suppose I have managed to download the SDK. What do I do with it: Copy paste my SDK files into it? This part is confusing for me.
Thank you for the feedback, we'll investigate ways to improve this guide.
1) You will be able to enable a platform when you submit a binary for it (currently only iOS is supported though)
2) You need to download the SC SDK project and add your custom SDK or any source files to that project. When you download the SDK please read the README file for exact technical details on how to do this.
3) Yes, copy and paste. But you'll have to connect it somehow to your custom page that you are developing. This depends on your SDK and the code you already have. Currently SC SDK allow developing custom page types. This means that your custom code can run only when you open a custom page in the app (it cannot run when the app starts or some other events happen).
4) Yes, you request the SC SDK project through our generic "Submit to App Store" wizard, which I would call in this case "Request a build or binary" wizard. We don't provide a simple download link for the project because when you request an SDK we prepare one special SDK only for you and for your module.
Some of my questions are answered but not all. Can you be so kind?
We have created a module called Skobbler 1. Note: We cannot enable the checkbox in the section Supported platforms 2. I suppose we need Website editor "default" but I am not sure 3. We did not add page resources because I think we will include our SDK with resources somewhere
We request an SDK project. So I hit the "upload binary file" link I select IOS and hit the button Request SDK Project. Now I have to select one of my applications. (This confuses me because I want to create a page type not publish an app.)
4. But anyhow which application should I select. I could choose our iphonepreviewer or a newly created Skobbler app. (I need the Apple certificates for this in the process) Does the "submit to app store" really adds a new build to the app store?
1) As I told earlier: "You will be able to enable a platform when you submit a binary for it". This means you have to download the SDK first, develop your module, compile it to a binary and upload it to the website. Only after that you will be able to enable checkbox for a supported platform. How can you enable the module to be available for a platform if you haven't submitted any code for it?
2) There are a couple of different editors. They can be used if you wan't to provide some settings for your page (e.g. for Mosaic page you can specify via the page editor which images are shown), but this is not required. Feel free to choose default for now. You will be able to change it later if needed.
3) Right, the resources are needed mostly for HTML based pages or for simulator preview. All native resources for your native feature must be provided in the binary + bundle (while you're developing your module in Xcode).
3.5) Please read steps 3 and 4 carefully. They explain why you need an app for an SDK.
More information on this matter:
You don't want to publish an app, but you still need a project for some app. Remember: you're developing a page. And a page can only be shown on device as part of an app. So when you request an SDK project, our system prepares a special app for your custom module and page. This will allow you to write code, run the app on the device and see it working.
4) Ok, I see what is confusing you. No, this page "Submit to App Store" does not mean that the new build you're requesting will get to the App Store automatically. In fact it tells you on this page "Select Build and Publication Type".
This is how you should understand what this page does: "When you are done with editing your app on the website, you want to do something with it. So here are your options".
There are different things you can do with your application: you can request an automatic build of your app and receive binary by email, you can ask us to make a binary and submit it to your App Store account, etc. One of the things you can do with the app is request an SDK project based on that app.
Please read the descriptions of each option on this submission page for more details.
4.5) "But anyhow which application should I select" - you should select the application to which you have added your newly created page. This is how you can open that page on actual device, see and test your work. Please read step 3 again.
PS. Mario, developing a module requires programming skills. You can't just download some code or library from somewhere and paste it somewhere on our site and be done with it. You need to have basic knowledge of iOS development: how to work with Xcode, what a target is, what a binary is, what a bundle is, how to build a project, how to write some Objective-C code.