innovatology

  • Archive
  • RSS
  • Ask me anything
banner

PlayBook TIFF File Image Viewer now available

The #playbook24 TIFF File Image Viewer app for PlayBook is now available on App World: http://appworld.blackberry.com/webstore/content/88379/?lang=en

Screenshot

TIFFER lets you load and view TIFF (*.tif, *.tiff) image files. Features:

★ Handy opening screen to get you started
★ Color, grayscale and b/w images
★ Single and multi-page images
★ High-speed native C decoder
★ Thumbnail list for multi-page images
★ Landscape and portrait orientation
★ Zoom to: page width, full page or max resolution
★ Tap image to go full screen and back
★ Custom file browser
★ Handles color correction
★ Handles compression
★ Follows TIFF 5.0 and 6.0 specs

TIFF stands for Tag Image File Format, and is widely used for faxes, scans, in scientific publications, by patent organisations and in many other situations.

By the author of Files & Folders, the unified file explorer & manager with integrated Box.net, Dropbox, Google Docs, ZIP, E-mail send feature.

    • #playbook
    • #playbook24
    • #tiff
    • #tif
    • #blackberry
    • #app
  • 1 year ago
  • 1
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

A PlayBook app in 24 hours (or less)

Last Saturday I woke up bright and early and decided to do a little experiment: Could I make a PlayBook app from start to finish in 24 hours or less? I also decided to tweet about my progress via #playbook24, giving updates for all the major steps, decisions, bumps in the road and so on. A lot of people joined in my adventure. Here is a transcript of that day:

Jon Webb @brainsforrent Let's see if I can conceive, build, test and submit a #playbook app within 24 hours. Start the clock! #playbook24 @BlackBerryDev 7:20 AM 11 Feb 12 Jon Webb @brainsforrent First: coffee! #playbook24 7:20 AM - 11 Feb 12 Jon Webb @brainsforrent Making it difficult for myself - app will contain an Air Native Extension: mixing AIR for the UI and native C for performance. #playbook24 9:19 AM - 11 Feb 12  	Ryan Edsall @rezn @brainsforrent Something new? After Files & Folders I can only imagine. 9:21 AM - 11 Feb 12  	Jon Webb @brainsforrent @rezn With the 24 hour time limit, this is going to be quite a bit simpler than @FilesFolders ;-) #playbook24 9:27 AM - 11 Feb 12  	Ryan Edsall @rezn @brainsforrent Oh wow! So your doing this as a test or why are you giving yourself just the 24 hours? 9:28 AM - 11 Feb 12  	Jon Webb @brainsforrent @rezn Well, the free #playbook offer (bbry.lv/zg73qK) ends monday. I'm busy tomorrow and monday. That leaves today ;-) #playbook24 10:15 AM - 11  	Ryan Edsall @rezn @brainsforrent Oh good. Well I'm sure you can cook something decent up in a day. If you remember send me an email or tweet once it's live :) 10:27 AM - 11 Feb 12 From 10:30 to 1:45 I ported a C library and implemented an ANE to be able to access its functions from AIR. I didn't want to tweet before I was sure I could get it working properly. Of course I had a backup plan in case of failure. Didn't want to make a fool of myself in public, naturally ;-) Jon Webb @brainsforrent So the 24-hour app I decided to write is a TIF file viewer and perhaps convertor. Somebody was requesting one in the forums. #playbook24 1:45 PM - 11 Feb 12

 Jon Webb @brainsforrent TIF is a little tricky, because it's not a format AIR supports. Solution: Air Native Extensions (ANE's)! #playbook24 1:46 PM - 11 Feb 12  Jon Webb @brainsforrent There's a slight bug in the ANE export wizard of the NDK, but luckily I found a work-around. #playbook24 1:47 PM - 11 Feb 12 Why use an ANE and not write the whole thing in AS3, you might ask. Well, TIF is quite a complicated file format. It would take a very long time to write a good TIF decoder, and as there are decompression routines involved, the performance wouldn't be so good in AS3. But there is already an open source TIF library in C which is easily ported to PlayBook. Jon Webb @brainsforrent I'm using the open-source libtiff POSIX library for the TIF decoding, converting it to a Bitmap for showing in AIR. #playbook24 1:48 PM - 11 Feb 12 Jon Webb @brainsforrent Got that part working already! Doesn't handle errors very well yet, but we have images on the screen! #playbook24 1:50 PM - 11 Feb 12 Jon Webb @brainsforrent To follow my blow-by-blow report of writing a #playbook app from scratch in 24 hours, check the hashtag #playbook24 cc @BlackBerryDev 1:52 PM - 11 Feb 12 Jon Webb @brainsforrent TIF files can contain multiple images (e.g. pages of a fax). We'll need to show a list of thumbnails. That's next up. #playbook24 1:58 PM - 11 Feb 12 Jon Webb @brainsforrent More coffee. #playbook24 2:26 PM - 11 Feb 12 Jon Webb @brainsforrent Hmm, TIF's are usually portrait pages, so we'll have to take that into account in the layout of the screen. #playbook24 2:36 PM - 11 Feb 12 Kyle Smith @kylesmithmedia @brainsforrent this is great, love the idea! #playbook24 3:30 PM - 11 Feb 12

 Jon Webb @brainsforrent Progress! We can open a multi-page TIF, show the thumbnails in a list, scroll through them and tap one to load the larger image! #playbook24 4:58 PM - 11 Feb 12 Jon Webb @brainsforrent Screenshots coming up... #playbook24 4:58 PM - 11 Feb 12 Jon Webb @brainsforrent Prototype TIF viewer, running on the device. Needs polishing, of course. #playbook24 twitpic.com/8iiln6 5:00 PM - 11 Feb 12  Bram Vandewalle @ZeZke @brainsforrent Nice! Jon Webb @brainsforrent A larger view. #playbook24 twitpic.com/8iim6u 5:01 PM - 11 Feb 12

 Jon Webb @brainsforrent I think I've deserved another coffee, don't you? Back in a sec. #playbook24 5:04 PM - 11 Feb 12 Jon Webb @brainsforrent Apps tend to put thumbnails, menus etc on the left, but it would make sense to put them on the right. #playbook24 5:15 PM - 11 Feb 12 Jon Webb @brainsforrent Kudo's if you can guess why... #playbook24 5:16 PM - 11 Feb 12 Jon Webb @brainsforrent We'll need some buttons to zoom the image to page width or full view. #playbook24 5:25 PM - 11 Feb 12 Jon Webb @brainsforrent Most people are right-handed. With thumbnails on the left, your hand would cover the full size image. More difficult to page. #playbook24 5:31 PM - 11 Feb 12 Jon Webb @brainsforrent The #PlayBook should have a global setting to indicate whether you are left or right-handed. Free tip for ya. #playbook24 @BlackBerryDev 5:33 PM - 11 Feb 12 Paul Gerhard @pgerhard @brainsforrent i'll be following this up sounds interesting I wish I could do the same good luck! #playbook24 @BlackBerryDev 6:18 PM - 11 Feb 12  Jon Webb @brainsforrent Can somebody take over for me on Wordfeud? ;-) #playbook24 6:22 PM - 11 Feb 12 (I had play a word with NNDNNTP on the rack within a few minutes, or lose the game) Jon Webb @brainsforrent Page-width and full-screen buttons are working, and you can scroll inside in the image. Pics coming up. #playbook24 7:02 PM - 11 Feb 12

 Jon Webb @brainsforrent #playbook24 after pressing the Page Width button... :twitpic.com/8ik7ep 7:05 PM - 11 Feb 12 Jon Webb @brainsforrent #playbook24 And this is what it looks like full-page: twitpic.com/8ik7ub 7:04 PM - 11 Feb 12  Jon Webb @brainsforrent You'll notice I've moved the thumbnails over to the right, and am now using the #PlayBook blue selection colour. #playbook24 7:06 PM - 11 Feb 12 Jon Webb @brainsforrent If there is only one image in the .tif, we don't even need thumbnails, we can put the screen real-estate to better use. #playbook24 7:09 PM - 11 Feb 12

Jon Webb @brainsforrent The thumbnail list is now hidden if there is only one image in the TIF file. #playbook24 7:35 PM - 11 Feb 12  Jon Webb @brainsforrent Let's see if colour .tifs work... #playbook24 7:36 PM - 11 Feb 12 The PlayBook has a little-endian CPU, so the colours were being mixed up.  Took a few minutes to fix. Jon Webb @brainsforrent #playbook24 A colour tif works too! twitpic.com/8iks6l 7:52 PM - 11 Feb 12   Jon Webb @brainsforrent #playbook24 Notice the 1:1 button? That displays the image without any scaling at full resolution. twitpic.com/8ikveu 8:00 PM - 11 Feb 12  Jon Webb @brainsforrent Time to hook up the Open button to allow the user to select a file.#playbook24 8:02 PM - 11 Feb 12

 Jon Webb @brainsforrent Hmmm, FlashBuilder just crashed on me... #playbook24 8:16 PM - 11 Feb 12 This is actually quite rare. On my workstation Flash Builder is usually very stable indeed. John Pinkerton @jpinkerton @brainsforrent obviously you're coding too hard! ;) 8:26 PM - 11 Feb 12   Jon Webb @brainsforrent @jpinkerton I think there may be a memory leak in the ANE handling...#playbook24 Jon Webb @brainsforrent Seems like the File.browseForOpen() method is still broken. Getting This content is locked. #playbook24 8:38 PM - 11 Feb 12 Jon Webb @brainsforrent #playbook24 Bummer. twitpic.com/8ilbhg 8:39 PM - 11 Feb 12 Julien Nicault @smugrik @brainsforrent I tried so many things on that one... also had to code my own, good luck! 9:10 PM - 11 Feb 12 Jon Webb @brainsforrent OK, so the File.browse() and File.browsForOpen() methods are braindead. #playbook24 8:58 PM - 11 Feb 12

 Jon Webb @brainsforrent They refuse to display anything but pre-installed app types (.doc, .pdf, .jpg etc). We need them to display *.tif files. #playbook24 9:00 PM - 11 Feb 12 Jon Webb @brainsforrent So I'll have to code my own file selection screen. Pretty lame. Luckily I can lift some code from @FilesFolders #playbook24 9:01 PM - 11 Feb 12 Sean Geraghty @leafysolutions @brainsforrent good luck in your #playbook24 9:00 PM - 11 Feb 12 RevDale @RevDale @brainsforrent best of luck with #Playbook24 10:09 PM - 11 Feb 12 Jon Webb @brainsforrent #playbook24 And we have a functioning file picker. Not the prettiest, but it works. twitpic.com/8imfau 10:22 PM - 11 Feb 12 This really needs to be fixed. The PlayBook is a business tablet. So working with documents, moving them between different apps and being able to automate workflows is crucial. Are you listening, RIM? Jon Webb @brainsforrent Time for an icon and a splash screen! #playbook24 10:25 PM - 11 Feb 12 Jon Webb @brainsforrent There isn't really a standard icon for .TIF files is there? #playbook24 10:26 PM - 11 Feb 12

 Jon Webb @brainsforrent #playbook24 This icon should be pretty obvious. twitpic.com/8impd8 10:48 PM - 11 Feb 12  Jon Webb @brainsforrent #playbook24 And a nice splash screen! Okay, I admit, not the most creative, but it will do for now. twitpic.com/8in0ou 11:17 PM - 11 Feb 12  Jon Webb @brainsforrent Well, I think that about wraps it up. We have a working app, complete with artwork, nice icons. #playbook24 11:19 PM - 11 Feb 12 Jon Webb @brainsforrent It took 16 hours on the dot. #playbook24 11:22 PM - 11 Feb 12  Jon Webb @brainsforrent I think I'll polish up the colours before I submit it to app world. I have a reputation to uphold, after all. #playbook24 11:23 PM - 11 Feb 12 Jon Webb @brainsforrent But that will have to wait until tomorrow, I'm ready for a beer or two (it's 11pm here) #playbook24 11:24 PM - 11 Feb 12

 Jon Webb @brainsforrent So what have we learned? It's quite possible to build a (simple) app in a day. Granted, I'm no beginner at this. #playbook24 11:26 PM - 11 Feb 12 Jon Webb @brainsforrent But there were some advanced techniques (AIR+C) used and some bugs to overcome. #playbook24 11:27 PM - 11 Feb 12 Jon Webb @brainsforrent I'll let you folks know if/when the app is approved by App World, and post a link to it. #playbook24 11:29 PM - 11 Feb 12 Jon Webb @brainsforrent Shameless plug: in the meantime, why don't you have a look at my other apps here: bit.ly/wqjUWX - #playbook24 11:32 PM - 11 Feb 12 Jon Webb @brainsforrent Until then: thanks for following along. I hope you enjoyed a day in the life of an app developer. It's been fun! Night all! #playbook24 11:33 PM - 11 Feb 12 Note: see below for some bits & pieces I cleaned up the following day Will Robertson @willwnet @brainsforrent I enjoying following along with #playbook24 - looking forward to picking it up on App World! 11:50 PM - 11 Feb 12 via web " Details John Pinkerton @jpinkerton Congrats @brainsforrent on completion of your #playbook24 project! 1:14 AM - 12 Feb 12  dasDestruktion @dasDestruktion @jpinkerton what is #playbook24 1:14 AM - 12 Feb 12  Jon Webb @brainsforrent @dasDestruktion @jpinkerton It's a little experiment I was live-tweeting about: building a PlayBook app in 24 hours. #playbook24 12:33 AM - 14 Feb 12

 Raffi @xtremesniper @brainsforrent Awesome idea for #playbook24 Thanks! 9:02 PM - 13 Feb 12  Sam Sharp @samsharp99 @brainsforrent Good work with #playbook24 - I spent 9 days, having never written any Java or an App before. #appin9days 8:45 PM - 13 Feb 12 Brent Arnold @iBrent @brainsforrent @BlackBerryDev What language/tools are you using for#playbook24? 8:46 PM - 13 Feb 12 Alan Farquharson @Farkie @iBrent AIR + C he said before :) 8:51 PM - 13 Feb 12 Jon Webb @brainsforrent @iBrent I used Flash Builder 4.6 for the AIR app, Flash Professional for the artwork, PlayBook Native SKD 2.0 beta 3 C/C++ bits #playbook24 12:37 AM - 14 Feb 12  Andrew McDonald @afmcdnl @brainsforrent I thought I had to do the same #playbook24 but the date has been extended! #yippie 12:37 AM - 14 Feb 12

The next day after the coding marathon, a few beers and some sleep I decided to clean up the v1.0 design a bit and add a nice intro screen. That took about 2 hours. I also optimized the native C code a bit for performance reasons, another hour or so. So in total I the app took 19 hours to build. And that includes tweeting, preparing screenshots, forum posts, lunch, dinner, a round or two of Wordfeud (NojW) and lots of coffee inbetween. Here are some screenshots of the v1.1 finished product:


  Colour TIF Colour TIF Colour TIF B&W TIF Multi-page TIF Full page view

  Multi-page TIF, portrait, full resolution	  Multi-page TIF, portrait, full page File browser	  Intro screen

Once the app is approved by BlackBerry App World, you’ll be able to find it here. And while you’re at it, why don’t you take the free trial version of Files & Folders for a spin?

UPDATE: The app has since been approved and is available on App World here.

    • #air
    • #ane
    • #app
    • #flash
    • #flex
    • #mobile
    • #native
    • #ndk
    • #playbook
    • #tif
    • #tiff
    • #blackberry
    • #playbook24
  • 1 year ago
  • 4
  • Comments
  • Permalink
Share

Short URL

TwitterFacebookPinterestGoogle+

About

Avatar Passionate about apps.

An Englishman in Utrecht. I build apps for BlackBerry, IOS, Android, websites and web systems for a living, often in Flash/Flex/AS3, JS, .NET and/or PHP.
Utrecht, Netherlands, http://www.innovatology.nl

Me, Elsewhere

  • @brainsforrent on Twitter
  • Linkedin Profile
  • RSS
  • Random
  • Archive
  • Ask me anything
  • Mobile
Effector Theme by Pixel Union