iOS SDK - How to know which kit, class to use? - ios

I'm new to iOS development and was wanting to know how to efficiently locate which kit, class to use to achieve certain things.
For example, I'm planning to build an app that heavily makes use of calendar events and I found that I should be looking at using something like eventkit to build upon but it's not clear for me within this kit which class to instantiate and which method to use in what order.
Can someone please direct me to a place where I can see some code examples of using a range of different kits?

I think you can learn things as you described from 'Reference'.
Two ways to check Apple Official References in Xcode. One is clicking the function name, parameter or those colorful keywords while you pushing the 'option'. The second way is using three fingers to touch those "keywords" slightly on the touchPad.
Or you can check many kits references by visiting iOS Developer Library (website). I'm also new to iOS Development, I wish things I said can help you.

Related

Is there an equivalent of Androids ShowcaseView for iOS?

There is a project for Android on Github:
https://github.com/amlcurran/Showcaseview
According to the readme:
The ShowcaseView library is designed to highlight and showcase specific parts of apps to the user with a distinctive and attractive overlay. This library is great for pointing out points of interest for users, gestures, or obscure but useful items.
I would like to know if a functionally equivalent one exists for iOS. It would be useful to give users a quick tour of an app. Typically app intros are handled with a few swipe screens. Think Uber and Duolingo.
Google and Stackoverflow searching returns nothing meaningful. If I had time I'd work on this as a side project.
Edit: I've ended up using github.com/IFTTT/RazzleDazzle which works for both Swift and Objective-C.
You can also try https://github.com/rahuliyer95/iShowcase this is a similar implementation of ShowcaseView for Android on iOS.
You can also check out my implementation at https://github.com/scihant/CTShowcase
It's developed using Swift 2.0 and can also draw animated highlights such as this one:
Update:
It's now updated for Swift 3.0
You can check a small library (MaterialShowcase on Github) that I created when developing my company app.
There's a framework we've been working on that might be useful, BubbleShowCase. Check it out and don't hesitate to leave any feedback.
Try WSCoachMarksView. It is very easy to use, e.g.:
DDCoachMarks is a simple and flexible iOS alternative:

iOS app structure

I am very new to iOS and is hoping someone with experience will be able to provide me with some insight into the program structure/architecture of an iOS app which sells books. For instance the News stand application.
Are those books additional programs which run 'outside' the newsstand app or are they modules which are loaded inside the parent app? And how would you reference them inside the appstore?
I would like to build a bookshelf for some books. Each book are built using Cocos2D (works like a game) and needs to be sold individually, but they also need to 'belong' to my bookshelf. The bookshelf will need to manage i.e. 'save, edit, delete' all books previously downloaded etc.
Would anyone be able to provide some guidance? Since I don't understand the architecture, I also have no idea where to start my search.
Many thanks!
I think you should break down your problem into small parts or modules.
First make learn about cocos2d.Then search about UICollectionView to make shelf like view.Then
integrate UICollectionView into Cocos2d.
For UICollectionView read This
and also look at This Tutorial
To save the books, you can use NSUserDefaults. Would you actually be getting actual books or would you be making your own? You can look up thenewboston on YouTube and learn how to actually make simple apps.

Voice control for iOS app with very limited dictionary for fast recognition

I'm thinking about implementing basic voice control for an iOS app. The app will have a dictionary with about 30 entries, where each entry is a first and last name. When the user speaks to the app, the app will need to select the correct name from the list of ~30.
One thing I'm not sure about: the list of names is defined by each user of the app. So every user will have a different set of names.
I'm wondering if there is a an open source library that is customizable on this level? My biggest concern is that I won't be able to let the user define the dictionary.
Any ideas on how this could be done?
Thanks in advance, and please forgive the vague question :)
#### ### ### ###
Update: I am aware of the OpenEars library. Can't find anything on their site on if they allow limited, user-defined dictionaries. I can see that an app developer can set a custom dictionary, but nothing on if the app's end user could do this. Thanks for the help!
OpenEars allows you to define your own vocabulary out of the box using http://www.politepix.com/openears/#LanguageModelGenerator_Class_Reference
You can ignore all words outside of the vocabulary you define by using the Rejecto plugin.
You can do something similar with Julius, but I'm told OpenEars has better acoustic models.
I have used Julius in the past it worked very well on a Linux machine.
Now for iOS, some guys creaceed have compiled it for our lovely platform and propose a SDK.
I have no clue on how good it is, but at least there is a trial version you could check. In my opinion for your purpose (1/30 possibilities) it should work pretty well.

Understanding Newsstand App

I have a big question about how newsstand works.
When you have to create a new magazine(issue), how do you do it?
I mean, Do I have to implement new code for each magazine (with new views and new view controllers) which doesn't look the same as the others and has interactive content? In this case, how do I add/upload/integrate them to my newsstand app which is already in the market?
In the case that It doesn't work in this way, How does it work?
Thank you very much in advance.
Your question really goes to the heart of how Apple has chosen to implement Newsstand. Basically, there are three possibilities for using Newsstand: use image/pdf content, use HTML5 content, and use the CoreText native API.
I take it from what you are saying that you would like to use the CoreText API. This is difficult to do in the Newsstand framework for the reason you suggest: you really are not supposed to upload a whole new app with each edition.
There are two possible solutions. The first is simply not to use Newsstand. Instead you can publish your magazine as an app, and simply upload a new app for each edition. This means you miss out on things such as subscriptions and the "double-listing" promotion of Newsstand, but you can make high-quality, native, custom interfaces.
The second is to do what I am in the process of doing right now, which is to develop something like an XML encoding that when loaded into your base app will generate the kind of interface you want.
At least that is my analysis so far. I would be so pleased to be told I'm wrong, really. But I do think this is one of those cases where Apple hasn't really thought through what they are offering. Maybe next year it will get better!
If you use the Baker framework you can download the interface elements (html, images) as "issues" and the code part (Baker framework) will stay the same.
To add a new issue you do the same as you do with downloading the PDFs using NKAssetDownload. If you're using Baker you will want to extract the whole "book" into the documents directory.

iOS sample projects to learn from

I am just starting iOS development. I read some tutorials, watched stuff on iTunes U and wrote some sample code myself. Now I want to take the next step. I want to learn about best practices for iOS development in XCode.
Are there any well written and well organized iOS projects that one could take a look at?
(As I see it, iOS is not exactly the place for open source enthusiasts, however.)
Thanks
Mike.
I agree with several of the other answers that state that looking at many, many projects for mini-examples of what you want to do in your own app is the way to go.
However, you asked for an example of an app demonstrating best practices.
You could do worse than to read Matt Gallagher's blog, Cocoa with Love from beginning to end. However, the app example you asked for is right here.
Not only will it show a variety of techniques, some novel design and best-practices, but also he points out where he feels that he might have done something better.
It's a great read.
I would suggest the following process: (it worked for me)
Think of an advanced app. that you eventually want to be proficient enough to create.
Make a top-down problem-solving tree containing the necessary skills required to build your final app.
Use this tree to divide your final app. into 'sub apps'. Start at the bottom of the tree, find a tutorial specifically for that skill, and make a "Hello World" app. that uses that skill.
Keep progressing upwards, creating 'sub apps' as you go.
When you are finally ready to make your final app. (it will take a while), you will have a good handle on how iOS development works. It will also be a great test of your knowledge via direct application!
Getting the hang of iOS development can be tricky; it really does require a top-down approach, and every online resource I've found takes a linear one. The only way that I think a linear approach to learning iOS development would be manageable, is to take it one small task at a time.
As for specific resources, I always google "[what I want to do] iPhone SDK" and browse the tutorials and forum posts that come up.
Here are some open source iOS apps. However, they aren't very well documented and are also very advanced.
TKAWebView - A subclass of UIWebView that handles authentication and downloading.
Welcome to your Mac - An iOS app. to VNC into a PC/Mac and do some cool stuff.
InAppSettingsKit - A settings screen creator for your apps.
Good luck!
The people behind the Parse platform have made two complete projects.
For each project there is the complete source code, a tutorial and the resulting app is also available from the AppStore.
Anywall: https://parse.com/anywall
Anypic: https://parse.com/anypic
They both rely heavily on the Parse platform as the data source, but you still get a feel for an iOS project.
Molecules is a great open-source app that uses 3D OpenGL to render complex models of molecules.
Just keep coding my friend. You'll learn over a period of time. The best way to get dirty in a mud fight is to jump into it... Weird analogy but you get the point.
Maybe someday, we all will learn from you then !
Like you said there many and many source codes are available internet, but most are incomplete.
I found some Open source codes of REAL application currently available through Apple app store are given here
Free iPhone App Source Codes of real apps
and also, you can find many answers here on stackoverflow question - Are there any Open-source iPhone applications around?
You can download free IOS sample projects from http://devcodemarket.com
I realize this is an old thread but I've also been looking for good objective-c code examples recently and I just realized that TextEdit's source code is available at the Mac Developer Library webpage.
Also, here are some popular objective-c libraries that have caught my attention:
CocoaPods
AFNetworking.
you can also go through UICatalog from Developers Library and download the sample code. just google it and you will find a project containing all basics of iphone.
I don't think there is any perfect project that can demonstrate all the qualities of great code. Developers have stylistic preferences and may make mistakes. That said, you should look at a lot of different projects and try to look at the conventions used.
I'd suggest starting on GitHub. Besides for seeing code, you'll see what libraries are out there, which may help further your projects later on. Here's the Objective-C page on GitHub.
(Also, I (GitHub link) think you're wrong about iOS devs not being in favor open source. Yes, there's money to be made, but you can't sell a CSV paring library on the App Store as is.)
Have a look at https://github.com/mozilla/firefox-ios
That is Firefox for iOS, written in Swift.
Cocoacontrols has a wide range of controls written using Objective-C & Swift.
I believe these days, this is one of the most famous website for iOS Developers.
But, before you jump onto this, you have to learn Objective-C & Swift very well, so that you will understand how to use the controls in your app which makes your app smooth.

Resources