I do this for a client of mine and over the years, have found the following to be the best solution:<p>1. iPod Touch / iPhone with LineaPro Barcode Scanners: <a href="http://ipclineapro.com/" rel="nofollow">http://ipclineapro.com/</a> - managers with personal iPhones get a new case, others get iPods.<p>2. Enterprise iOS license, annual update of certificates is the only chore. Otherwise no worries about deployment of code to each device because it's web-based. All inventory movements, order picks/puts are real-time, wireless.<p>3. Basic HTML webview that goes to //intra.net/barcode/scan/[barcode] upon each scan. The web server handles the rest.<p>4. Use HTML5 with type=tel for entering numbers. Use PhoneGap-style JS-to-ObjC routing for playing alert/warning/success sounds.<p>5. QR Codes are slow. LineaPro is instant and has a red-laser.<p>6. Print labels on Zebra Z Series: <a href="http://www.zebra.com/us/en/products-services/printers/printer-type/industrial/z-series.html" rel="nofollow">http://www.zebra.com/us/en/products-services/printers/printe...</a> - by POSTing an XML to the printer's IP. Design multiple labels with variable fields and in the XML include label name, number of identical copies per label, and the data per label. Prints within 0.5 second.<p>I think I've deployed 40 of these scanners and 10 printers and they work great in a very heavy-use environment - think 10000+ scans, 2500+ labels a day. The app itself is styled with high contrast and readability / error-minimization in mind instead of gorgeous iOS end-user color scheme. So lots of red and green backgrounds instead of shades of beige.<p>If you can keep the user from having to go back to a computer after each task, it can save a tremendous amount of time and effort. Native iOS apps are great for AppStore users but in intranet environment, I vastly prefer HTML5 because not only can I test the app remotely, I can add any feature I want with minimal effort and show the user anything they need to see - from daily task list and current order status to inventory by bin location and empty bins.