Is pinch for font size changes in tableview ok re usability? - iphone

Is pinch for font size changes in tableview ok re usability?
Seems a good idea from my perspective, but wondering would users find it ok, or does it break an iPhone best practice?

I read through the tableView human interface guidelines and didn't see anything explicit there. In the Direct Manipulation section it says:
people can use the pinch gestures to directly expand or contract an area of content
If the user is using a pinch and zoom to change all text in a tableview it doesn't really seem to me like it is really proper "direct manipulation." It seems like it is more of a global setting change with a generic gesture. I think the real decision would come down to why are you planning to offer this gesture to the user? Is there a common use case for your app that the user would want to adjust the font size often? Are they going to change it more than once per session?
I know it is nice to offer lots of features, but any extra features are just going to obfuscate the real features. It may confuse the user if they accidentally do a pinch and then the text size is changed and they don't make the connection.
Overral, I don't think it breaks and explicit rule, but I would be really careful about deciding to add this "feature." If there is a really good reason to do it, I would say go for it, otherwise, it probably isn't worth the risk of getting rejected from the store and/or possibly confusing the user.

I vote no if it's key to the functionality of your app. You're having to train people to do something that may not be intuitive for them to realize that's there. If you look that the Twitter official app, they do something similar to expand the content in that cell, but you could totally live without that capability if you didn't know it was there.

Related

Is UITextInput missing selection handling mechanics?

If you implement UITextInput on your custom view and - say - use CoreText to render the text you get to a point where you can draw your own cursor and selection/marking and have that fully working with the hardware keyboard. If you switch to Japanese input then you see the marking, but there's something curious: if you long press into the marking you get the rectangular system loupe and selection handling without having to deal with the touches yourself.
What I don't get why we would have to implement our own touch handling for the selection, draw our own loupes etc. It's working for marking! So what do I have to do to get the standard gesture recognizers added to my custom view as well?
the one sample on the dev site only has a comment about that user selection would be outside the scope of the sample. Which would indicate that indeed you have to do it yourself.
I don't think that it is in Apple's interest that all developers doing their own Rich Text editor class keep doing their own selection handling code, let alone custom drawing of the round and rectangular loupes?! Granted you can try to reverse engineer it such that it comes really close, but that might give users a strange feeling if the selection mechanics differ ever so slightly.
I found that developers are split in two groups:
1) rapes UIWebView with extensive JavaScript code to make it into an editor
2) painstakingly implements the selection mechanics and loupe drawing themselves
So what is the solution here? Keep submitting Radars until Apple adds this missing piece? Or is this actually already existing (as claimed by the aforementioned engineer I met) and we are just too stupid to find how to make use of it, instead resorting to doing everything (but marked text) manually?
Even the smart guys at Omnifocus seem to think that the manual approach is the only one working. This makes me sad, you get such a great protocol, but if you implement it you find it severely crippled. Maybe even intentionally?
Unfortunately the answer to my question is: YES. If you want to get selection mechanics on a cusrom view you have to program it yourself.
As of iOS 6 you can subclass UITextView and draw the text yourself. According to an Apple engineer this should provide the system selection for you.

Bubble Chat + Emoticon + UITableViewCell

This is a question for iPhone development and I'm hopin someone can point me to the right direction on how i should go about implementing this.
I am trying to write a chat application that supports emoticons/smileys. Where the smiley/emoticon images are stored can be figured out later. I think few iphone applications out there are already doing this (i.e. skype + ebuddy(?)) but not sure what method they went for.
After searching around, there seems to be a few ways of doing this (i think):
bubble chat style which has been discussed before. UITableViewController with custom UITableViewCell. For emoticons, might have to do a whole bunch of calculations to determine where to stick a UIImageView for each emoticon.
Use UIWebView as the whole "window". Style it to look like bubble chat. Takes away any manual calculations on image smiley placements.
I have no idea what the performance is like for each of these two methods, how complex it can get etc, so any comments and guidance will help for sure. Cheers
If you use custom UITableViewCell, then I'd probably implement drawRect: instead of adding labels and images. One will probably take as long to implement as the other, but it will perform much better.
The UIWebView might be worth a short, although you will have to make sure that everything looks right there, too. Instead of using one big web page, I suggest simply throwing in a web view into each table view cell.
Personally I prefer the first approach, measuring and layout of text is not too complicated, but then I've never been the ultimate HTML guru.
I agree with #Eiko on making custom UITableViewCells, especially using drawRect instead of adding labels, images, etc.
If you used a UIWebView how would you handle updating it? A complete reload each time new text is sent? That seems like it will be a cause of issues. Once you get a long conversation reloading the entire UIWebView's contents will cause some flickering which isn't acceptable in my opinion. Also using a UIWebView would require you to have 2 complete copies of each conversation in memory. 1 as your backend data and 1 as the HTML. Where using a UITableView you have your backend data, and only enough of that will be duplicated that can fill 1 screen at a time.

should one customize default iphone controls?

my app asks the user yes-no questions, user replies using a uiswitch on screen. i've been thinking about creating a custom version of the switch that would display yes/no instead of on/off and would use a green/red background as an indicator of the value. after creating a mock up i'm not so sure this is the way to go. using the default switch doesn't feel right but so does changing it too much. what do you think?
It really depends; some custom applications have extremely custom UIs (such as ConvertBot, for example) and it works great for them. The risk is sometimes worth the effort. In other scenarios, custom widgets result in breaking usability. I don't think that changing 'ON/OFF' to 'YES/NO' is groundbreaking, if you do it right you can pull it off no problem.
I think if your mockup was better done (the slider should be divided into two to have YES AND NO of equal length with equal padding on both sides) it would look a little better.
From a user interface perspective, this is a bad idea. People have already learned the default switch, so why change it now?
Additionally, you run the risk of adding another source of bugs to your application that was not present before.
Depending on the app, this can be very valid. Sure people are used to the default controls, but changing the text or colors is not going to break the user's understanding of these controls. Its still the same switch underneath.
In your example you color both the Yes/No. That is the only concern I would have that you did change how the core switch works. Typically, it works with a highlighted color and a grey color. So, having it stay colored on both options could potentially be confusing.
Regardless, if you want to build your app this way, you should. Just because the iPhone offers great default controls doesn't mean developers shouldn't innovate and add their own or take the default controls to the next level.
Take a look at the custom UISwitch control that I built to allow me to change the background color of the control. You could use the same method to change the text, the font, or the text color very easily.
http://www.homick.com/posts/custom-uiswitch-control
The code is available on Github and includes a PSD that is used to build three different png files that the control uses. You can modify the contents of the psd to recreate the png files in whatever format you like. Swap those into the control and away you go.

Acceptable (by ) HIG friendly approach to temporarily highlight a UILabel

I'd like to draw attention temporarily (±1 sec) to a value in a UILabel when a user changes something elsewhere on the screen. I know Apple is pretty particular about what and how people add "pizazz" to their apps...and for the most part I think it's for good reasons but in my case I feel my UI would really benefit from a subtle animated effect of some kind.
So I'm asking the UI police if there is an acceptable way to bring "tasteful" attention to a UILabel?
Currently I'm animating a color change to a lighter shade and back again but it's not quite "strong" enough.
Maybe some kind of a glow effect? (prolly a huge HIG no-no if there is even framework support for it?!?)
Edit - Example:
There's a good example of what I'm thinking might work that is right in front of our eyes. When you type the the 2nd half of a paren or "]" or "}" in XCode other, corresponding half "(", "[" or "{", is briefly highlighted. How is that accomplished? Is that just a simple view behind the character that fades in and out?
What you are describing probably won't be a problem with Apple. The main thing they seem to dislike is when you take an Apple standard usage and use it to mean something different.
So for example, if you added a symbol like the little x-circle that you find inside UITextField boxes, and used it in a UITableViewCell to mean "Search" -- Apple won't like that.
Good idea. Well, you could use an image with alpha that fakes the glow. Just fade it in and out quickly.
My english is not so good, but are you concerned about apple rejecting your application just because of an animated lable? don't worry.
Animated color change is probably the best you're gonna get if there's no built in UI support for it. Apple won't reject your app for this, but it will bother some purists.
You could consider some of the more traditional messaging frameworks to draw attention to the concept you want to highlight for the user.
In my apps TafelTrainer and TafelTrainer+ i blinked the UILabel for a short time, and they both came in without problems.

How to lay out an iPhone page

I want to implement a description page in an iPhone app. It's the final page in a drill-down navigation structure and needs to include a title, description, icon, large image, date and some buttons the user can click on to activate another application. The information comes from an external source and the title, description and image all vary in size.
I've seen various ways of doing this, such as laying out each piece of information inside table cells, and creating views that look like web pages. I've come up against layout problems using a standard UIView and UILabel because of the variable size content.
Looking at other apps, I think Facebook and the App Store have the most attractive layouts and handle variable size content well. I'd like to know what the easiest way of getting an attractive layout is, and also which way will produce the best (as in best looking) results.
a few things first you are in luck because a lot of the facebook UI stuff is available in the three20 project
http://github.com/joehewitt/three20/tree/master
there are a lot of templates that you can use in there that might solve all your problems, however documentation is a bit light on, and it may take some reverse engineering.
Also, you didn't mention the UIscrollview this might help you get a layout with more information on the page.
To get the best looking apps unfortunately you need to have the eye for detail (or pay someone who does) read through apples Human interface guidelines, as they seem to know what they are doing.