iPad built in dictionary for development - iphone

I'm fairly new to iOS and was wondering if there was a way that I could search for a word in a game and pull up a definition. I have a splitviewcontroller, one view is moving objects for the game (irrelevant to the dictionary portion) and the other view is for the dictionary.
Does the iPad/iPhone have built in dictionaries for different languages, not just English that I could use?
I was thinking I could also use a site like http://www.thefreedictionary.com/hello and search it but I don't know what that would look like while the app is running (ie,if it would search it and display it in the viewcontroller instead of popping up a window).

I'm pretty sure UIReferenceLibraryDictionaryController (described here) uses the device's language.

Related

Custom iOS Controller for multiple collections

I'm still fairly new to the iOS development scene, so I'm not totally sure where to look for open source controls, etc. The app I want to build will have multiple collections in it. I'd love to have a view where I can swipe up and down to browse between collections, and then swipe left and right to scroll though that particular collection -- all on one screen.
The app I've seen that basically resembles this is the "Popular" screen on the Mobli app for iOS.
I'd be grateful if anyone has seen something similar already built that I could base it on instead of trying to program a new view from scratch w/ my still limited knowledge.
The ScrollView sample project from apple does this, you might want to to take a look at it.
As for reusable components, those are few and far between. It's difficult to protect a XIB in an external library, and beginning developers tend to have trouble getting static libraries to work in their project anyway. Github is where I look for OSS code I can use.

iPhone development - Which is better for my app (Navigation or window based)?

It's a really simple question , but i'm still new at this.
I want to create a game with some levels.
Is it better to use a Navigation based app or a windows based?
views used are:(Main menu- Options - high scores - 10 levels)
Thanks!
If you want to create a game, take a look at the cocos2d framework. It will provide a complete solution for this kind of programs.
As to your question, I would not use a Navigation base app, since you do not want to give the option of going back through levels. You just need a way to manage all the different scenes youd have (levels), moving from one to another, and display a menu/options view when it is the case. So, if you do not want to use cocos2d, a window based app will suit your needs.
Most games have a 100% custom UI, but if you are just getting started, you might want to prototype your screens/flow between screens using UIKit first.

Changing views iphone

this is a very noobie question although I have had quite a bit of experience iphone development.
I have a client who wants an app with various screnns, but does not want to use built in iphone navigation, but instead wants to have buttons on the screens. All I can find is a load of 14 year olds giving tutorials on MVC or using different views in the same nib.
Does anybody know what apples suggested way of doing this is as I can imagine it been a mind field.
Many thanks
Maybe you should have followed the MVC tutorials of the 14 year old guys.
Then you would know that you could use the built in iphone navigation controllers (ie UITabBarController, UINavigationController) without their standard view counterparts (ie UITabBar, UINavigationBar).
You could always just draw buttons on the screen in interface builder and use custom images for the normal/highlighted states.
When the button is pressed it's up to you what you'd like to do with the received buttonclick method being invoked... the usual way is with the standard navigation system which can optionally have a navigation bar at the top with (back) button, title, etc... and you push/pop viewcontrollers in a hierarchical way. You can just turn the title (or change for your own style) but it does enforce a hierarchical structure.
If you don't want hierarchical navigation of your screens you can either do this with your own custom navigation controller than handles which viewcontroller is currently visible or you could use a thirdparty component like three60 which allows you to navigate around like a webbrowser does on webpages.
You may also want to take a look at Corona which is more for games but would allow you to do a totally custom interface with all sorts of custom transitions and just needs you to write lua... that said it will limit you on using their engine with this approach as you can't get to the ObjC level.
Finally one last approach is simply to use webview and pick up the clicked links so you design your app via webpages... rather ugly approach but can work well if you're very familiar with HTML.

iPhone development - app design patterns

There are tons of resources concerning coding on the iPhone. Most of them concern "how do I do X", e.g. "setup a navigation controller", or "download text from a URL". All good and fine.
What I'm more interested in now are the questions that follow the simpler stuff - how to best structure your complex UI, or your app, or the common problems that arise. To illustrate: a book like "Beginning iPhone 3 Development" tells you how to set up a multi viewcontroller app with an top 'switcher' viewcontroller that switches between views owned by other view controllers. Fine, but you're only told how to do that, and nothing about the problems that can follow: for example, if I use their paradigm to switch to a UINavigationViewController, the Navigation bar ends up too low on the screen, because UINavigationViewController expects to be the topmost UIViewController (apparently). Also, delegate methods (e.g. relating to orientation changes) go to the top switcher view controller, not the actual controller responsible for the current view. I have fixes for these things but they feel like hacks which makes me unhappy and makes me feel like I'm missing something.
One productive thing might be to look at some open source iPhone projects (see this question). But aside from that?
Update
To clarify: I suppose what I'm asking about could be summarised as "Recipes and Gotchas for iPhone development". The sort of things that are of interest to developers, but aren't covered in any of the iPhone books etc. that I've seen, such as:
I'm writing an iPad app and want a UISplitViewController presented to the user only some of the time, which Apple seem to be saying I can't do. Is it possible? How?
Apple don't give me a way to stylise my app in a convenient, across the board way (e.g. font tweaks, or colours). How can I approach styling my app?
Memory management isn't made any easier by some of the inconsistencies in UIViewController method names (e.g. viewDidUnload is not the opposite of viewDidLoad, despite the name). Is there a consistent easy way to tidy that up and make view controller memory management less error prone?
How can I consistently and easily test my view controllers for behaving correctly when a memory warning comes in? It's easy to simulate a memory warning in the Simulator, but if the UI I want to test is showing (and is a 'leaf level' view controller), it won't get its view unloaded because it is currently visible.
N.B. I'm not actually asking the above questions here -- I think I have decent answers to them! -- just giving examples of 'good' questions that illustrate this stackoverflow question.
The WWDC talks available on iTunes U (at http://developer.apple.com/videos/wwdc/2010/) have some great information about structuring, especially in the Application Frameworks section.
If you're talking about code, use the Model/View/Controller pattern like in most Web applications:
The model code defines the objects that your program represents. A time tracker app, for example, might have model objects like Task, TimeSlice, and User (especially in a network setting).
The view code is provided for "free" with the iOS SDK, unless you need specialised view code. These are UIImageView, UIButton, etc.
The controller code bridges the 'gap' between the model and view. The controller will change the views to reflect the model selected by the user and facilitate the selection of model objects.
This is the base design pattern for any iPhone app, and it's the one that most will use.
If, on the other hand, you refer to what we in my company call UX (user experience) design, however, you can't beat the Apple HIG guidelines in the Apple iOS SDK documentation set, available online or in Xcode from the Help menu.
The other thing I recommend quite highly is to play around with some test/dummy code. Nothing can top experience. Experimenting with the iOS SDK and getting your hands dirty will allow you to truly learn the best ways to design apps.
Edit:
Also, delegate methods (e.g. relating to orientation changes) go to the top switcher view controller, not the actual controller responsible for the current view.
Can you clarify? In all of the apps I've written, the currently shown view controller receives the orientation change methods. Note that there are two methods. shouldAutorotateToInterfaceOrientation: allows you to decide if the view should rotate, and didRotateFromInterfaceOrientation: allows you to re-layout the view if necessary.
Please go through this link. In this they have explained clearly about design patterns.
http://www.raywenderlich.com/46988/ios-design-patterns
You might want to consider watching videos like the CS193p course from Stanford on iTunes U. They go through the most important parts of iOS development in deep, and give some source code.
As far as I can tell, there isn't a book or resource which deals with the sort of advanced gotchas and recipes that I was looking for. Loads of useful resources exist, but just not addressing the stuff I'm thinking about.

Android equivalent to iphone indexed UITableView

I am porting an iPhone app over to the Android platform. One of the views has a very large list of data and on the iPhone app, there's a scrollbar of sorts on the right hand side that displays the letters of the alphabet and allows the user to quickly scroll through the list this way. I am having trouble finding such functionality in Android. Is there a simple way to implement this?
I think this is implemented through AlphabetIndexer, though I have not tried it personally.
The Android way to do this is to make the list filterable using the keyboard, like a Blackberry. You should do it this way to fit in with the platform experience.
To implement this, you call the setTextFilterEnabled(boolean textFilterEnabled) method on your list view. See example below:
myListView.setTextFilterEnabled(true);
For a complete example, see Hello, ListView.
If you can't use that, then you can use the fast scrolling like seen in the Contacts application. This is not a public API yet, but you can implement it from the Contacts source code at https://android.googlesource.com/platform/packages/apps/Contacts
.
Right side Alphabet indexer with working sources
http://hello-android.blogspot.com/2010/11/sideindex-for-android.html