I've a big problem with the iPhone application that I'm developing.
When you run the application you see a image-stream from different users.
Actually, when you start my app or you click the refresh button you see a modal round rectangle with "Refreshing..", when finish the refreshing, you can see all images. But this takes too times, specially for slow connections.
Now checkout this screenshot from different apps:
The applications are Nuji, Picplz and Instagram.
When you run these application you see instantaneously the stream and when you scroll down and the other images get focus, the image start loading and you see an Activity Indicator.
I want something like this, I want an activity indicator while images loading and maybe, for increase application speed, start loading images on focus and stop loading the others.
I hope I explain myself well.
Please if you can help me.
Thank you very much and sorry for my english.
Bye.
You might look into the Three20 framework on Github https://github.com/facebook/three20. Using that framework you can get that capability for free, using TTImageView.
Updated: Also I thought of another place I've seen this capability. The developers at enormego offer a solution too. http://developers.enormego.com/view/what_if_images_on_the_iphone_were_as_easy_as_html
Related
In an iPhone application I want to create an UI that just look like iPhoto application where photos will be loaded like iPhoto's tile view.
I am planning to use UITableView To achieve this.
How can I manage showing random sizes images just like iPhoto app shows in there gallery view?
Any library which will help to achieve it? Can you please provide code sample url's?
Shiv you can try AQGridView that may help you to achieve what you are looking for.
You can also wait for IOS 6 and see photo tools.
check out http://three20.info/ as well and may help you. Probably you may have hit iPhone show photos/images sliding (like photo library and Facebook app)? link. but be sure to check this link.
Hope this many things would help you; I tried to give answer in noon but it take me late and it's evening now.
I have seen some apps where when you launch them for the first time after downloading (e.g. Chrome app on iPhone), it shows you a list of animated gestures on the screen, kind of giving you a tour of the app.
How do I build one something like that? And how does the app know to launch only for the first time after download and not since then? For the second question, I am guessing a "shown=TRUE" value can be saved inside a PList file and checking the value each time when the app finished launching. But I am more curious about the mechanism involved in creating a guided app tour.
You can use transparent and semi-transparent images with a UIImageView, so you can make up an image with arrows and notes and put over the whole screen. You could fade it out when the user taps.
To know if it's the first time running the app, you should use NSUserDefaults instead of a plist; it's much easier, and you should be app to find a quick tutorial on that fairly easily.
Also, you could check around on this site for controls like this one. I haven't used any of them myself, so I'm not sure how much they differ from a regular UIImageView. They look nice though.
I'm trying to investigate a very long start up time for my app and could use some help. It takes about 6-7 seconds to start up and that's just FAR too long. I'm not loading any data sets or anything, but the app is a calculator so my xib does have lots of buttons and button images.
I'd like to use Instruments (or something else) to analyze where all of the time is being spent so that I can optimize, but the documentation for Instruments isn't really giving me much on specifics of how to use it for this specific problem and/or how to interpret the results.
Do you have any suggestions for how to test this? A pointer to a tutorial on how to use Instruments for this? An iTunes U video or something else?
Any suggestions are welcome!
Kenny
Palimondo asked how I eventually solved my problem... it was a bunch of small changes and I'm not truly sure where the savings came in to play and I'll explain why below.
My app is a calculator, so it has a ton of buttons. I thought at first it must be the button loading causing the problem, but as I explained in the comments above to Paul, even if I loaded 0 buttons, that only shaved 1 second off of the start up time. After changing many small things, I was able to save 3 seconds off of start up time which was good enough.
I had a background image that was a nice textured-gradient-ish image. I reduced the file size on it (changed the texture, exported it with different options).
I went from loading 100 buttons up front (it's a calculator) to loading about 15, but attempted to do it in a secret fashion so the user wouldn't notice. About 50 of the buttons aren't visible to start anyway because you have to tap a Shift button to see them, so they were easy to lazy-load. The others are visible, but I figured that the user isn't going to tap most of those right at start-up because they need to hit some numbers first. So I left all of the number pad buttons and the Clear button in the xib so they are loaded on start up but removed everything else from the xib.
That left me with a big blank area on the screen and you could actually see the buttons filling in the blank area as I lazy loaded them (filling very quickly, but you could see the blank area and then all the buttons appear). So I updated the background gradient graphic to include images of the buttons. The buttons appear to be there, but they aren't, so unless the user taps a fake button within 2 seconds they never notice a problem... and usually they just try to tap that button again anyway and by then it usually has been lazy-loaded and therefore works.
Before doing any of the above suggestions:
Is this 6-7 seconds while running from XCode? Or from starting directly by tapping it on the iPhone?
Debuggers and instruments won't help you much here, since they just add to the overhead, and won't help as much in profiling because it poisons the data you'll see.
Edit:
In terms of profiling tools, you may want to look into using Shark:
http://www.switchonthecode.com/tutorials/using-shark-to-performance-tune-your-iphone-app
It's pretty simple to use in general. It's sorta self-explanatory.
Here are couple of suggestions:
do you need all those buttons loading up at once?
do you (over)use transparencies in your images?
are the images the exact size required? Stretching (resizing) takes time to compute
do you perform any operation that is blocking the main thread?
I would measure the startup time of an empty dummy app (maybe the XCode Window-based app template) on your actual device (debugger disconnected). Then start adding your initialization code, views and objects from your app into this dummy app until you find what's slowing the startup time the most.
I am looking to replicate the image gallery view that shows thumbnails, like in the photos app on the iPhone.
Is there a view controller or any examples that anyone can provide to replicate this?
There isn't one provided by Apple. I would recommend looking at Three20. It has a few things with look a lot like the Photos app.
Another option is AQGridView.
Take a look at the video of Session 104 from the WWDC 2010. It's basically a 40 minute tutorial on how to do the photo app.
Bear in mind that allowing users to zoom will greatly increase the space required. If you use CATiledLayers, that is, which, depending on your desired zoom level, you should consider doing.
Oh, and there is source code ;)
What they don't tell you is how they did their tiling. I found that you can
a) download ready-made tiles from the server with the app or with a content update (you can use ImageMagick's crop tileWidthXtileHeight - e.g. crop 100x100 - to do the tiling). This has the disadvantage of large downloads.
b) download ready-made tiles from the server as needed (may lead to lags in your app, but then MKMapView does it quite nicely, doesn't it?)
c) tile on the phone as needed (here you can also consider caching the results, although that will likely mean you have to check space left on the device)
I've recently given enormego's PhotoViewer a try. It's easy to use, and it's much more focused than the Three20 project. (Which I also use and like a lot.)
Hai,
I developed sample app for image slide show
Now i want to keep timer to the app.
It has to scroll the images for every 5 seconds
Please help me with sample code
Thanks
Basanth
Its bad to ask for sample code. Because, you will not learn. If you see the documentation, along with required solution, you will get a chance to learn new things.
You can use UIImageVIew to show your images.
If you see the documentation for UIImageView, there is a property "animationImages" which will take an array of images. You can set "animationDuration" as well there.
That's it, your slide show is ready.