Wednesday, May 13, 2009

TheAppleBlog (19 сообщений)

 rss2email.ruНа что подписаться?   |   Управление подпиской 

TheAppleBlog  RSS  TheAppleBlog
TheAppleBlog, published by and for the day-to-day Apple user, is a prominent source for news, reviews, walkthroughs, and real life application of all Apple products.
http://theappleblog.com
рекомендовать друзьям >>


  • Are Apple's High Laptop Prices Sustainable?

    bentleybookThe brushfire popularity of small, inexpensive laptop computers, aka netbooks, shows no sign of losing steam, with a reported growth rate for the category of 80 percent so far in 2009 (vs. a general laptop growth of around 13 percent), putting netbooks on track for sales of around 21 million units this year. Apple consequently faces a daunting challenge, with only two notebook models selling for less than $1,500, and no offering in the expanding netbook market.

    Negative Lookout For Netbook-less Apple

    This week, ChangeWave’s Jim Woods and Paul Carton report that, according to their April survey of 3,231 consumers, they've picked up a jump in planned laptop spending going forward, led by escalating netbook demand. That’s not good news for netbook-less Apple. Nearly a quarter of respondents to the latest survey (23 percent) who plan to buy a laptop in the next three months say it'll be a netbook, five points higher than in ChangeWave’s February sample.

    The good news is that Apple’s premium-priced lineup has helped make it the most profitable company in the personal computer business. The bad news is that the company’s position in notebooks appears to be unsustainable if it wants to maintain or grow its market share and stay a significant player.

    Apple Becoming The Bentley Of Personal Computers?

    In a recent commentary, BusinessWeek’s Stephen Wildstrom observed that while Apple has long seemed to aspire to be the BMW of the computer business, these days it’s in danger of becoming the Bentley. He has a point.

    For instance, while Apple’s Q1 2009 financial results last month recorded the company’s best non-holiday quarter ever, with over $8 billion in total sales and profits of over $1.2 billion, or 14.8 cents of profit for every dollar taken in during the period, MacBook sales actually dropped a whopping 22.1 percent in the quarter. One European study even reported that netbooks accounted for 30 percent of all notebooks sold in Europe during Q3 2008.

    Apple Sweeps Consumer Reports Notebook Ratings

    On the other hand, the June issue of Consumer Reports gives Apple’s MacBook family of notebooks top ranking in the 13-inch, 14-inch to 16-inch, and 17-inch categories, even though many of their competitors cost less. The 17-inch MacBook Pro got the highest rating of any notebook reviewed by Consumer Reports, scoring 80 points out of 100, and rated “Excellent” or “Very Good” in all tested categories, so Apple has to be doing something right.

    So people like the notebooks Apple is currently making, but cost seems to be the primary factor motivating consumers going forward. There is pull in both directions.

    Apple Delivers Value

    Personally, I’m not feeling at all ripped-off for paying a premium price (by PC standards) for my new unibody MacBook, which is a delight to use. I could have had a Windows laptop with a larger screen and more features for hundreds less than I paid for the MacBook, but I would have got what I paid for: a generic PC. The MacBook isn’t perfect. I remain convinced that dropping FireWire was a serious mistake, and there aren’t enough USB ports, but aside from those points, I have no serious complaints.

    The 2.0 GHz Core 2 Duo MacBook with Nvidia GeForce 9400M integrated graphics has ample power for my needs, has so far been reliable (admittedly early days yet), looks and feels great, with a standard of workmanship reminiscent of a fine Swiss watch.

    Unfortunately, it’s evidently becoming more difficult to convince cash-strapped and recession-weary consumers who’ve never experienced the joys of Mac ownership that the added value for the extra money really is worth it, which is the nexus of Apple’s laptop pricing dilemma.

    Moving Downmarket?

    I’ve been an advocate of Apple moving downmarket in order to protect and hopefully grow market share, but I also agree with BusinessWeek’s Wildstrom that Apple is probably right to shun the extremely low-profit bottom end of the laptop category. However, there’s a good case to be made for Apple wading in to the burgeoning sub-$1,000 “thinbook” category that blurs the distinction between netbooks and notebooks — machines I call “crossovers.”

    Wildstrom suggests that one netbook/crossover strategy Apple could employ would be a MacBook based on Intel’s soon-to-be released Consumer Ultra-low Voltage (CULV) processors, paired with Nvidia’s 9400M graphics as used in the current MacBooks, to create a 12-inch notebook priced at perhaps $800. I wholeheartedly agree, and can almost see 12-inch PowerBook aficionados dancing in the streets and lining up to buy just such a machine.


    Переслать  


  • iPhone 3G Now Comes Directly from Apple to Your Door

    Picture 16Apple seems to be trying everything they can think of to clear existing iPhone stock. As of today, you can finally order the iPhone 3G directly from Apple’s web site and have it delivered to your door.

    If you’re fond of the old ways, you can still reserve your device at the Apple retail store and then go pick it up. Personally, since shipping’s free, I’d just as soon let laziness prevail. While the same option has been available from AT&T for a while now, it’s always nice to have a choice, especially one that makes use of Apple’s much-touted customer service.


    Переслать  


  • Apple Takes the Gloves Off With Three New Ads

    Picture 13Yesterday TAB writer Tom Reestman took a shot at Microsoft over their latest attack ad on Mac pricing, and today Apple is defending itself against Redmond’s advances with three new “Get a Mac” ads starring Justin Long and John Hodgman. This time around, Cupertino seem to be responding directly to the Microsoft Laptop Hunters series of ads that feature “regular people” shopping for a new notebook within a certain price range, which inevitably excludes Apple machines. They also take a jab at the “I’m (person’s name), and I’m a PC” tactic Microsoft has been using in all of its recent advertising.

    “Customer Care” compares the kind of customer service you get with Apple, and with a PC. Mac has a friendly, nice-looking Genius to give him one-on-one help anytime he needs it, while PC calls up a customer support hotline and is given the runaround. I think this is the farthest Hodgman has ever stretched his acting chops in one of these ads.

    In “Elimination,” Apple is pretty clearly responding to Microsoft’s tossed glove. A computer buyer joins the pair on-screen, and PC brings along some friends to offer her a wide range of buying choices. Eventually, though, she eliminates them all based on her search criteria, which almost match that of Lauren and Giampaulo, with one final, key exception. Apple, in giving the customer a very clever last line, gets in a nice parting shot with this ad.

    The third and final new ad, “PC Choice Chat,” finds Hodgman hosting a radio talk show, the format of which ostensibly consists of talking to PC users about their variety of choices and options. It ends up following the same lines as the other two commercials, mentioning both Apple’s superior customer service, and its resistance to security threats. Obviously Apple knows its strength and doesn’t feel the need to stray too far from its core message: we’re easier and safer to use.

    Good batch overall, and the dig at the end of “Elimination” is priceless.


    Переслать  


  • Apple Announces WWDC Keynote Date, Time, and Speaker

    wwdc09

    Today Apple revealed some more details about the upcoming Worldwide Developers Conference via a press release available on their web site. Specifically, they give a firm date and time for the keynote speech of the event, and details about who will be involved.

    Many had hoped that since Steve Jobs’ medical leave of absence is set to end in June, he would once again take the stage at WWDC ‘09 to deliver the keynote with the trademark showmanship that has made Apple events the media circuses they are today.

    It looks like, for whatever reason, June will not mark such a comeback after all. Phil Schiller, SVP of Worldwide Product Marketing, will instead headline the bill, backed by “a team of Apple executives,” on June 8 at 10 a.m. Schiller recently took the stage as keynote speaker at Macworld in January, with mixed results. From the sounds of the press release, it looks like this time around, Apple may again use more of a multiple-speaker model, like the one that served them so well at the iPhone OS 3.0 announce in March.

    Apple also partially confirmed a release timeline for OS X Snow Leopard put forward by AppleInsider by announcing that a Final Developer Preview version of the new operating system would be made available at WWDC. This official statement, which comes from Bertrand Serlet, Apple’s SVP of Software Engineering, should put the kibosh on rumors that the full retail release would arrive in time for the June event. Should, but probably won’t.


    Переслать  


  • Belated Tech Rhymes For Limerick Day

    Sure, Limerick Day was actually yesterday. Think of these as either a day late or 364 days early.

    There once was a major OS
    Whose code was so clearly a mess.
    But we just have to cope,
    And hope against hope
    It's fixed in the next version, I guess.

    There's a hot social network called Twitter.
    On my desktop, "tweets" it does litter.
    Truth is most are a bore;
    I'm not sure I want more,
    But I sort through the mud for the glitter.

    We once kept our files on PCs
    So working with them was a breeze.
    But now they're in the Cloud,
    And we all scream out loud
    When an outage brings us to our knees.

    I have personal info to sync,
    And used all the right settings, I think.
    Alas, to my despair
    It never gets there;
    It's enough to drive someone to drink.

    There's a hot rumor from overseas.
    Geeks just can't get enough of these.
    It wasn't fact-checked,
    But it must be correct
    Since it came to us from the Chinese.

    In this online age it gets tough,
    And some firms' Terms of Service are rough.
    But we're in such a hurry
    We don't stop to worry
    Until Facebook owns all of our stuff.


    Переслать  


  • Need for Speed Undercover Infiltrates the iPhone

    nfsundercover

    As a general rule, racing games tend to leave me cold. My brother is the car buff and racing fan. I’ve enjoyed a few, like Gran Turismo, but I tend to give them a pass. Need for Speed Underground for the PS2 was another exception to the rule, mostly because of the RPG-type elements of customizing and upgrading your car, rather than the racing elements themselves. Oh, and I loved Mario Kart, but that doesn’t really apply here (Nintendo will probably never allow that dream to come true).

    Need for Speed: Undercover, one of EA’s big iPhone releases for 2009, recently went live in the App Store, and I spent this past weekend being a hot shot street-racer. Well, a pretend hot shot, anyway. Those familiar with 2001’s The Fast and The Furious will recognize the plot basics in Need for Speed: Undercover. You’re an undercover (surprise!) cop, who’s trying to infiltrate the street racing world to recover some important stolen cars and/or arrest people. The story wasn’t exactly gripping enough for me to pay close attention to.

    Graphics

    Developer EA took a cue from the Command & Conquer series in NFS: Undercover and decided to go with live-action cuts cenes instead of CG. That means cheesy acting seems even more cheesy, but it also means they hired a bunch of hot female actresses to trot around looking sexy for no good reason. Actually maybe that’s the reason I couldn’t follow the plot.

    NFS5

    In-game graphics are pretty good, although I found that your car looks a lot better in the garage than it does on most of the tracks, depending on the lighting conditions. Maybe it has something to do with the custom paint job I applied to my ride, but it looked off in most of the races, though perfect in the shop. Other than that, the in-game tracks and other vehicles actually look very good on the iPhone’s small screen, and there is no noticeable lag or slowdown, even when you’re going at top speed or using your nitrous boost.

    I’m a huge fan of collision damage on car models in racing games, and unfortunately, NFS: Undercover is missing those. Maybe it’s too much to ask for in an iPhone racing game, though. Other graphic effects, like when you enter slow-down precision steering mode, or when you trash an opponent car or encounter police cruisers, work well but can become annoying if you have to replay a level a number of times. An option to turn off at least the cruiser-spotting effects would be a nice addition.

    Audio

    Sound was a bit hit or miss for me, but my experience may not be representative. First, I thought it was odd that there was no music during the intro/opening. But then things were working fine for cinematics, so I assumed it was just a choice the devs made. When there was nothing playing in-game, I started to worry (before you ask, I installed from iTunes and reset prior to playing, so it shouldn’t have been install issues). Eventually, the audio did start working.

    NFS1

    When it did, I sort of regretted that it had. The soundtrack is OK, but very limited, and hearing the same songs over and over quickly gets tiring. You can always opt to listen to your own iPhone music, though, making this sort of a non-issue. Although I think developers taking shortcuts on game soundtracks for the iPhone just because it has a music player built-in is a pretty lame cop-out.

    Gameplay

    NFS: Undercover is very reminiscent of Underground when it comes to gameplay, and that’s a good thing. You start off with $25,000 and three cars to choose from. Once you’ve made your purchase, you get down to racing. There are a variety of types of races, including Battle, Sprint, Hot Car and Takeout, so even players who don’t like the repetition of most racing games shouldn’t find this one too redundant.

    NFS6

    Winning races wins you money, which you can then use to purchase new cars, or to outfit your current ride with performance and aesthetic upgrades. A new paint job, lowered suspension, huge shiny rims, and a lot more are available, with different custom equipment for each car. There’s also tons of cars to unlock, so you won’t lack for motivation, even when some of the races are a lot more challenging than most and have to be replayed over and over. If you ever get stuck, you can go back and re-run old races to build your bank and buy upgrades and/or better cars.

    Car control during races is kept simple, which is ideal for the platform. Your engine is going full speed by default, and tapping the screen anywhere will apply your break. Swiping down enters the slowed-down improved control mode, and swiping up activates your nitrous. You turn by tilting your phone in either direction, and doing so with a quick jerk will let you drift around corners. I find that I never use the slow-mo mode, though other might find it handy. In general, handling is good, and doesn’t feel either too sensitive or too loose.

    Verdict

    Despite not really being interested in the import car racing scene, or racing games in general, I really like Need for Speed: Undercover. It has good replay value, lots of unlockables, and customization that amounts to a leveling system. If you’ve passed on every other racing game for the iPhone and iPod Touch to date, this may be the one to get.


    Переслать  


  • App Store Roundtable: After Sales Support

    app_store_icon

    In this installment of the App Store Roundtable, I talked to a few developers about issues with supporting their apps after a sale has been made. Many developers are concerned at the difficulty of providing any form of after sales support to customers. Minor problems with an app often lead to a bad review and a dissatisfied customer, when a better support system could have quickly resolved the issue.

    The App Store is a wonderful platform, but I would love to have better customer service tools. The App Store asks the shopper to place their trust in the developer with Apple serving as an intermediary. Apple’s reputation goes a long way in building trust, but by providing better customer service tools Apple would turn their developers into a dedicated customer service team. By adding features like an app FAQ section, the ability to send a refund, and a standard “contact” button, Apple could strengthen customer relationships.

    – Carrie Segal, developer of Colorific

    I see real difficulty in supporting end-users. Apple’s sole concession is a “support” link in the App Store, which most people seem to ignore, preferring to add a review. Of course, we can’t respond to those reviews. We see a number of problems: Users typically see iPhone OS updates at the same time as developers, and there’s that delay in pushing out fixes; the difficulty of remotely diagnosing problems; the obstacles in getting access to logs and databases…The list goes on. Apple is certainly moving in the right direction with the recent availability of crash reports and version numbers on reviews, but things are possibly improving too slowly to help developers building more complex applications. As it stands, the App Store is still geared towards “disposable,” low-cost apps. People aren’t going to pay more for complex apps until developers can adequately support them.

    – Stephen Darlington, developer of Yummy

    Other developers reported some success by building their own support links and mechanisms into their Apps.

    In Flower Garden, I did go out of my way to make sure users can contact me and give me feedback. There’s even a button in the app itself for people to give feedback.

    – Noel Llopis of Snappy Touch, developer of Flower Garden

    As Darlington mentioned, Apple has just recently started providing developers with access to crash reports via iTunes Connect. Trent Shumay, of Finger Food Studios, is one of many developers welcoming the new addition:

    As soon as I heard of the crash reporting, a sense of warmth and happiness entered my soul after years of battling it out on platforms where it simply wasn’t an option. For the average independent iPhone developer, access to crash reports is a major equalizer in the delicate balance between limited resources for Beta Testing and product quality.

    Our apps will receive thousands (or hopefully hundreds of thousands) of executions by a group of users not conditioned to its quirks and intended usage. No QA process can possibly reproduce this, so it’s incredibly valuable to have a safety net in case something goes wrong.

    Apple’s crash reports deliver key information directly back to the developer, and have the potential to reduce the timeframe for correcting crash bugs by an order of magnitude. This is only a good thing, and a very welcome tool in the development process.

    Join us next time?

    If you are an iPhone developer with experience of the App Store and would like to participate by sharing some opinions in future App Store Roundtables, please get in touch via our contact form.


    Переслать  


  • Apple Releases Mac OS X Update 10.5.7

    software-updateThere was a lot of buzz that it might come today, and it has. Apple just released Mac OS X Leopard 10.5.7 for download via Software Update. As one, let us install and restart our computers. Maybe the Internet will pause for a second in our absence.

    Here are some highlights from the new release:

    • Includes additional RAW image support for several third-party cameras.
    • Improves performance of video playback and cursor movements for recent Macs with NVIDIA graphics.
    • Improves the reliability and accuracy of Unit Converter, Stocks, Weather and Movies Dashboard widgets.
    • Addresses a situation that may cause issues when logging into Gmail.
    • Improves reliability when syncing contacts with Yahoo.
    • Improves network performance when connected to certain Ethernet switches that have Flow Control enabled.
    • Improves stability for network home directories hosted by Mac OS X Server v10.4.
    • Improves Finder search results for network volumes that may not support Spotlight searching, such as Mac OS X Server v10.4, Time Capsule, and third-party AFP servers.
    • Includes several improvements to Directory Service and Client Management, which are described in the About Mac OS X Server 10.5.7 Update article.

    For a complete list of fixes and enhancements, check out Apple’s official support article detailing the release. As always, let us know if the update brings any unpleasant surprises.


    Переслать  


  • Public Safety Advisory: How to Downgrade from Time Capsule 7.4.1

    apple-time-capsule-1

    I always upgrade all of my Apple firmware as soon as the updates become available. I’ve never had a problem with any of the new firmwares, and most of the time they improve whatever product I am upgrading. I’ve never had a problem, that is, until I upgraded my Time Capsule to the 7.4.1 firmware.

    I use my Time Capsule as a NAS, not a router, so it stores all of my music, movies, documents and photos…all the important stuff. Since my Time Capsule is being used as an external hard drive for all the computers on the network, it is essential to have a fast connection. If you try to stream a movie or even music from a drive that you do not have a good connection to, the media will be choppy and could eventually stop streaming all together.

    Quick tip: To ensure the fastest streaming speeds, if you are using your Time Capsule as a NAS, I would recommend connecting it via Ethernet to your router instead of using the wireless. I have found that the wireless connection is not the best method when using it as NAS.

    A few weeks ago I upgraded my Time Capsule to the 7.4.1 software and did not really think much of it. A few days later, my roommate told me they were having trouble streaming music. I thought that was weird, but told them to restart the Time Capsule and the router and then try it again. They restarted both items and told me they were still having trouble.

    At this point, I didn’t remember that I had recently upgraded the firmware and was thinking, “This is weird, we haven’t changed anything but my roommate is claiming the network is messed up.” Later that day when I got home I investigated, and sure enough, something wasn’t right. After about an hour of poking around on the network, it finally dawned on me that the only change I’d made was upgrading the firmware, so I decided to downgrade to the previous version, and voila, my problems were gone!

    To Downgrade Your Time Capsule Firmware:

    1. Open Airport Utility: Applications → Utilities → Airport Utility
    2. Find your device in the left-hand column and select the "Manual Setup" button
    3. In the “Summary” window that pops up click on the word “Version”timecapsuleversion
    4. In the pop up box that comes up next to the “Upload Version” select “7.3.2″timecapsuleversionpopup
    5. Click “OK”
    6. Your Time Capsule will restart and be as good as new!

    Frankly, I’m shocked that Apple would release a firmware update that would cripple the hardware and am looking forward to the next revision, which will hopefully address this issue.


    Переслать  


  • Time Master: Above and Beyond Time Tracking

    timemaster

    Some of you may recall my article a few weeks back, Time Tracking Via the iPhone: 5 Apps Reviewed. In recent weeks, I have continued to experiment with a few different time tracking apps. That was until I came across Time Master, one of the most powerful time trackers I’ve ever used. At $9.99, Time Master (iTunes link) isn’t cheap, but they say you have to spend money to make money, and I believe Time Master will help with just that.

    Time Master puts tracking invoices, billing and time all in the palm of your hand. I was impressed with the intricate organizational capabilities of this app. Putting all entries logged under a client and/or project results in a well-organized work-flow. This app continued to surprise me with its rich feature set. I found many small features that aren’t all that important, but definitely contribute to the overall user experience of the app.

    tm5

    The user interface can seem a bit overwhelming at first, but once you become accustomed to it, it is one of the app’s most impressive features. All of your entries are filed under a client, then under a project. Each category has a number of customization options, such as varying price points for individual projects, or varying price points per individual client.

    tm2

    One of the huge problems I run into when dealing with clients is expenditures, as the client isn’t always sure where his or her money is going. Time Master has a feature specifically for keeping track of expenses in much the same way as it keeps track of your time. I was astounded at how easy it was to generate a report that can then be emailed directly to your clients or copied into Excel or Numbers.

    tm1

    Time Master is a powerful iPhone application that gives me very little cause for complaint. The app does have some downfalls, though. One being that it is slightly unintuitive at first, so reading the instructions would be a safe bet. The second failing would be the lack of a “begin timer” button on the Time Entries page, as it isn’t initially clear how to begin the timers. These two minor issues aside, I think Time Master is solid, feature-rich, and a great tool for keeping your business in line.


    Переслать  


  • Microsoft Jumps the Shark, But Gets a Lamborghini Gallardo SE for Only $700

    ZunePass__15

    Microsoft has lost its marbles regarding this whole "Apple is expensive" thing, which is clear with their latest "ad." So far, they’ve only been running this ad online, which makes me wonder if even they know they've jumped the shark with this meme.

    Their latest shot is a video with "certified financial adviser" Wes Moss. Wes explains that it takes $30K to fill Apple's latest (120GB) iPod, but only $15 (a month) to fill a similar-sized Zune. Huh? It would appear that Wes is a "financial adviser" in the same way that Giampaulo is "technically savvy" and that Sheila will "cut video." In other words, they may be these things, but if so, by no means are they good at what they do.

    In Wes' case, as a financial adviser — especially a certified one — I would think one should know what "renting" is. In fact, if your job title has the word "financial" anywhere in it, I would expect at least a reasonable grasp on borrowing vs. owning. Poor Wes, he thinks he got that Lamborghini for only $700, but at the end of his six hours he'll find out exactly what renting is. For his sake, I hope the police aren't involved.

    Microsoft, this has been tried before. A company that at one time actually had a name in digital downloads tried this pitch. With a Super Bowl ad, no less. It didn’t work. Nobody bought (rented?) it then, and they won't now.


    Переслать  


  • Apple Freezes Snow Leopard APIs, Makes Mac Drives Accessible Under Boot Camp

    osxsnowleopard

    Snow Leopard is starting to settle down into a relatively stable piece of software that will likely resemble the final release version, according to Engadget. Some speculate that it could receive retail release alongside iPhone OS 3.0 as soon as WWDC, which takes place in early June.

    Like iPhone OS 3.0, Apple is now giving developers the go-ahead to develop Snow Leopard-specific apps without fear of major feature changes or revisions, since they just announced that the operating system’s APIs are now frozen. That should also mean that the feature list we’re seeing reported now from devs with access to the Snow Leopard beta is an accurate representation of what the new OS will ship with.

    Some of the highly popularized features of Snow Leopard are the inclusion of QuickTime X, the long awaited update to the resident OS X media player software that will finally take it beyond version 7.xx. Another recent addition is Chinese character handwriting input recognition, a feature it borrows from its portable cousin, and a finished version of the Grand Central architecture, which lets devs use multiple processor cores without necessarily having the advanced programming knowledge usually required.

    MacRumors points out yet another new feature they’ve spotted, which is the ability to access HFS+ formatted drives in Windows using drivers built into the new version of Boot Camp that will ship with Snow Leopard. The only people not pleased about that are probably the developers of MacDrive, a third-party Windows program which currently allows you to do the very same thing, but for a price. So long as Apple includes drivers for accessing NTFS drives in OS X, the circle will finally be complete.


    Переслать  


  • Quick Tip: Prolong Your MacBook Battery Life

    firmware_updater_icon

    Having a laptop battery that drains quickly is one of the most annoying things I can think of. I bought a laptop over a desktop so I could use my computer anywhere and expect the battery to last enough time to get a decent amount of work done. Whenever I find something that can increase my battery life, I get excited. I recently stumbled across a firmware patch for MacBooks that does just that.

    The patch was released in March 2009, but I did not find it until just now. According to Apple: “This update improves the ability of MacBook batteries to maintain a charge when the system is shut down and not used for an extended period of time. For more information about this update, please visit this web site: About Battery Update 1.4.”

    The products that were affected are as follows: MacBook (13-inch Late 2006), MacBook (13-inch Mid 2007), MacBook (13-inch), MacBook (13-inch Late 2007), MacBook (13-inch, Early 2008), MacBook (13-inch, Late 2008), MacBook (13-inch, Early 2009).

    If you own one of the affected models and are interested in giving your MacBook’s battery life a boost, head over to the firmware update page and click the download link.


    Переслать  


  • iPhone Dev Sessions: Create a Drum App

    BickBoxx-1

    You've seen all the different drum apps, right? Well, they're really easy to make. In this iPhone Dev Sessions article, I want to teach you how to make Bickboxx, an actual app that's in the iTunes App Store.

    Grab Bickboxx (FREE) from the iTunes App Store if you want to see this puppy in action so you have an idea of what you’re building. Also, I've opened up the source code for free at Github. Feel free to download it, report issues, or even fork your own version and change it as you see fit.

    More info on the open-source community project at Bickbot’s Bickboxx page.

    Note: You don't need to download the code from Github to get through the tutorial.

    An On-going Project

    I plan on adding more tutorials with enhancements to this project. Here are a couple of things that could be featured in future iPhone Dev Sessions.

    • Key logger
    • Adding analytics tracking
    • Adding application preferences
    • Track recorder and editor
    • Vibration feedback
    • Add your own custom sounds
    • Access your iPod library as a background track

    Leave a comment with other enhancements you want to learn.

    OK, let’s get to creating Bickboxx!

    Get Started

    Create a new View-based project in XCode. Name the project “Bickboxx”.

    Download this zip file and unzip it. These are all the sounds, images, and icons you need for Bickboxx. Drag all these files to the Resources. Hat tip to John Ellenich for the graphics/sounds.

    You need to copy the item to the project's directory, so put a check mark next to "Copy items into destination group's folder (if needed)." Your settings should look similar to this. Click Add.

    Adding the background image in Interface Builder

    Double-click BickboxxViewController.xib to open it in Interface Builder. Drag an Image View (UIImageView) from the Library to the View window. This will act as a placement holder for our background image.

    Bring up the Attributes Inspector. Set the Image to Background.png.

    Creating the Button in Interface Builder

    Drag a Round Rect Button (UIButton) to the View.

    Bring up the Attributes Inspector. We don't want the button to look like an ugly white rectangle. Set the Type to Custom.

    Further down the Attributes Inspector, set the button's state to Normal (or Default State Configuration depending on your version of Xcode). This is what the button looks like when it's not doing anything.

    Set the button's Image to B Inactive.png. You need to resize the button in the View to make sure the "B" button is fully shown.

    Now, change the button's state to Highlighted (or Highlighted State Configuration depending on your version of Xcode). This is what the button looks like when it's pressed down.

    Set the button's Image to B Active.png.

    Drag another Round Rect Button (UIButton) to the View and repeat this section for the letters "E", "A", and "T". Your View should now look like this:

    Close Interface Builder for now.

    Build and Go to make sure everything is still working. Touch the buttons, and they should light up.

    Adding the Sounds Code

    We have an interface that doesn't do anything. Let's fix that. The audio framework we need isn't added by default. We have to add the AudioToolbox framework.

    Control+Click the Frameworks folder on the left. Go to Add → Existing Frameworks…

    Select the AudioToolbox.framework from /System/Library/Frameworks.

    Click OK and add it to the project.

    Open BickboxxViewController.h and add this code to it.

      #import <UIKit/UIKit.h> #import <AudioToolbox/AudioServices.h>  @interface BickboxxViewController : UIViewController {     CFURLRef        bNoteFileURLRef;     SystemSoundID    bNoteFileObject;     CFURLRef        eNoteFileURLRef;     SystemSoundID    eNoteFileObject;     CFURLRef        aNoteFileURLRef;     SystemSoundID    aNoteFileObject;     CFURLRef        tNoteFileURLRef;     SystemSoundID    tNoteFileObject; }  @property (readwrite)    CFURLRef        bNoteFileURLRef; @property (readonly)    SystemSoundID    bNoteFileObject; @property (readwrite)    CFURLRef        eNoteFileURLRef; @property (readonly)    SystemSoundID    eNoteFileObject; @property (readwrite)    CFURLRef        aNoteFileURLRef; @property (readonly)    SystemSoundID    aNoteFileObject; @property (readwrite)    CFURLRef        tNoteFileURLRef; @property (readonly)    SystemSoundID    tNoteFileObject;  @end 

    At the top, we're referencing AudioServices.h from the AudioToolbox framework we imported earlier.

    Below that is the declaration of properties for four sounds for the "B", "E", "A" and "T" buttons.

    bNoteFileURLRef is the file location reference for the bNoteFileObject. This is the sound the "B" button will make.

    These are the properties for the "E", "A" and "T" sounds as well.

    The BickboxxViewController.m File

    Open BickboxxViewController.m. We need to synthesize the getters/setters for our properties.

    You can do this by adding this after @implementation BickBoxxViewController:

      @synthesize bNoteFileURLRef, bNoteFileObject, eNoteFileURLRef, eNoteFileObject, aNoteFileURLRef, aNoteFileObject, tNoteFileURLRef, tNoteFileObject; 

    Changing the viewDidLoad Method

    Locate the viewDidLoad method. It will be commented out. You want to uncomment it to activate it.

    The viewDidLoad method gets called after all the UI components are created. This is a good place for any startup code you need your app to perform. In this case, we'll need to set our properties to the correct sounds.

    The first thing we need to do in viewDidLoad is get the main bundle for the app. The main bundle allows you to use a folder hierarchy to organize and locate many types of application resources including images, sounds, localized strings, and executable code.

    After [super viewDidLoad];, add this code to get the main bundle for the app.

      // Get the main bundle for the app CFBundleRef mainBundle; mainBundle = CFBundleGetMainBundle (); 

    To build the sound for the "B" button, we need to get the path of the sound file we want to play. The name of the sound file is B.aifc. This is the code to get the URL to the found file to play. Put this code after the code where you get the main bundle.

      // Get the URL to the sound file to play bNoteFileURLRef  =    CFBundleCopyResourceURL (                                              mainBundle,                                              CFSTR ("B"),                                              CFSTR ("aifc"),                                              NULL                                              ); 

    Note that valid system sound packages are .wav, .aif and .caf files.

    Now that we have bNoteFileURLRef set we can associate the sound file with the system sound object bNoteFileObject. The AudioServicesPlaySystemSound function lets you very simply play short sound files.

    Add this code after the code that gets the sound file URL.

      // Create a system sound object representing the sound file AudioServicesCreateSystemSoundID (bNoteFileURLRef, &bNoteFileObject); 

    We finished loading up the sound for the “B” button. We'll need to load up the sounds for the "E", "A" and "T" buttons.

    Try to code this part yourself. If you get stuck, the viewDidLoad method should look like this when you’re done.

      // Implement viewDidLoad to do additional setup after loading the view, typically from a nib. - (void)viewDidLoad {     [super viewDidLoad];      // Get the main bundle for the app     CFBundleRef mainBundle;     mainBundle = CFBundleGetMainBundle ();      // Get the URL to the sound file to play     bNoteFileURLRef  =    CFBundleCopyResourceURL (                                                  mainBundle,                                                  CFSTR ("B"),                                                  CFSTR ("aifc"),                                                  NULL                                                  );      // Create a system sound object representing the sound file     AudioServicesCreateSystemSoundID (bNoteFileURLRef, &bNoteFileObject);      // Get the URL to the sound file to play     eNoteFileURLRef  =    CFBundleCopyResourceURL (                                                  mainBundle,                                                  CFSTR ("E"),                                                  CFSTR ("aifc"),                                                  NULL                                                  );      // Create a system sound object representing the sound file     AudioServicesCreateSystemSoundID (eNoteFileURLRef, &eNoteFileObject);      // Get the URL to the sound file to play     aNoteFileURLRef  =    CFBundleCopyResourceURL (                                                  mainBundle,                                                  CFSTR ("A"),                                                  CFSTR ("aifc"),                                                  NULL                                                  );     // Create a system sound object representing the sound file     AudioServicesCreateSystemSoundID (aNoteFileURLRef, &aNoteFileObject);      // Get the URL to the sound file to play     tNoteFileURLRef  =    CFBundleCopyResourceURL (                                                  mainBundle,                                                  CFSTR ("T"),                                                  CFSTR ("aifc"),                                                  NULL                                                  );      // Create a system sound object representing the sound file     AudioServicesCreateSystemSoundID (tNoteFileURLRef, &tNoteFileObject); } 

    Creating Our IBActions

    Our BEAT buttons need to be associated with IBActions to make them do something. First, let's declare the methods. Open BickboxxViewController.h and add this code before the @end line.

      - (IBAction)bSound:(id)sender; - (IBAction)eSound:(id)sender; - (IBAction)aSound:(id)sender; - (IBAction)tSound:(id)sender; 

    Your BickboxxViewController.h should now look like:

      #import <UIKit/UIKit.h> #import <AudioToolbox/AudioServices.h>  @interface BickBoxxViewController : UIViewController {     CFURLRef        bNoteFileURLRef;     SystemSoundID    bNoteFileObject;     CFURLRef        eNoteFileURLRef;     SystemSoundID    eNoteFileObject;     CFURLRef        aNoteFileURLRef;     SystemSoundID    aNoteFileObject;     CFURLRef        tNoteFileURLRef;     SystemSoundID    tNoteFileObject; }  @property (readwrite)    CFURLRef        bNoteFileURLRef; @property (readonly)    SystemSoundID    bNoteFileObject; @property (readwrite)    CFURLRef        eNoteFileURLRef; @property (readonly)    SystemSoundID    eNoteFileObject; @property (readwrite)    CFURLRef        aNoteFileURLRef; @property (readonly)    SystemSoundID    aNoteFileObject; @property (readwrite)    CFURLRef        tNoteFileURLRef; @property (readonly)    SystemSoundID    tNoteFileObject;  // The new code you added - (IBAction)bSound:(id)sender; - (IBAction)eSound:(id)sender; - (IBAction)aSound:(id)sender; - (IBAction)tSound:(id)sender;  @end 

    Close the file and open BickboxxViewController.m. Add the implementation to make the IBAction methods make the appropriate system sounds by invoking the AudioServicesPlaySystemSound method.

    To play the "B" sound, the implemented method should make a call to AudioServicesPlaySystemSound and use the bNoteFileObject we created above. Add this after the property synthesis code:

      - (IBAction)bSound:(id)sender { AudioServicesPlaySystemSound (self.bNoteFileObject); } 

    Add similar implementations for the "E", "A" and "T" sounds as well.

    For reference, the top of BickboxxViewController.m should look like:

      #import "BickBoxxViewController.h"   @implementation BickBoxxViewController  @synthesize bNoteFileURLRef, bNoteFileObject, eNoteFileURLRef, eNoteFileObject, aNoteFileURLRef, aNoteFileObject, tNoteFileURLRef, tNoteFileObject;  - (IBAction)bSound:(id)sender {     AudioServicesPlaySystemSound (self.bNoteFileObject); }  - (IBAction)eSound:(id)sender {     AudioServicesPlaySystemSound (self.eNoteFileObject); }  - (IBAction)aSound:(id)sender {     AudioServicesPlaySystemSound (self.aNoteFileObject); }  - (IBAction)tSound:(id)sender {     AudioServicesPlaySystemSound (self.tNoteFileObject); } 

    For the last piece of code, we need to clean up our mess so we don't have memory leaks. At the bottom of BickboxxViewController.m, add these lines to your dealloc method:

      - (void)dealloc {     [super dealloc];     AudioServicesDisposeSystemSoundID (self.bNoteFileObject);     AudioServicesDisposeSystemSoundID (self.eNoteFileObject);     AudioServicesDisposeSystemSoundID (self.aNoteFileObject);     AudioServicesDisposeSystemSoundID (self.tNoteFileObject);     CFRelease (bNoteFileURLRef);     CFRelease (eNoteFileURLRef);     CFRelease (aNoteFileURLRef);     CFRelease (tNoteFileURLRef); } 

    We’re done coding. Build and Go the project to make sure nothing is on fire. Your buttons won’t make any sounds yet. We’ll need to link our code to our interface.

    Linking the buttons to the code in Interface Builder

    Now that our code is done, we can link our buttons to our code. We'll start with the "B" button link it with the bsound method. To do this, open up BickboxxViewController.xib.

    Control+Click on the File's Owner object so we can link our "B" button to our bsound.

    Drag from the bSound in File's Owner to the "B" button in the View.

    An overlay should pop up. Choose Touch Down. The normal default is to execute the action when the finger is lifted from the button. We don't want that. Soundboards don't work that way. This will call the bSound IBAction method when the button is pressed down.

    Do this linking with the rest of the buttons. When you're done, Control+Clicking File's owner should look like this.

    Here’s a video of me using Bickboxx to practice for my opening act for Paul Oakenfold.

    You're done!

    That's it — you're done! Compile and run this and you'll be DJ-ing parties with Moby in no time.

    Again, you can download the source from social coding site Github. Feel free to file issues here if the code needs fixing or enhancing.

    Homework

    Are you ready to apply your newfound knowledge? Solidify it with this extra credit assignment.

    Your homework: Add a new button and a new sound to the project.

    If there are any typos, problems, suggestions, or questions, let me know here in the comments.


    Переслать  


  • University Makes Apple Portables a "Requirement"

    iphone-ipod-touch-firmwareFile this one under “Apple is secretly buying up schools with their healthy stack of cash.” I’m only kidding, but in a move that probably has a lot of parents eyeing their teen’s list of required materials with a considerable amount of suspicion, the University of Missouri is making Apple’s iPhone and/or iPod touch a requirement for some incoming freshmen. It’s true that many programs make having an Apple computer a requirement, because of the industry-specific software and programs they teach with and for, but even Stanford’s iPhone development course doesn’t have the devices themselves as a requirement, making this a notable first.

    The “requirement” in this case is more like a recommendation, though, since it won’t be monitored or enforced. And it doesn’t apply to all students at the university, only those in the journalism program. The reasoning behind requiring students to have the devices is not that they can listen to music or play Bejeweled 2 if they find their lectures boring, but that they can use their iPhone and iPod touch to augment their learning experience. Administrators at the university are hoping that by recording and listening to their lectures more than once, knowledge retention and understanding will go up.

    A number of questions spring to mind: Why not just make a portable recording device of any kind a requirement? Apparently, the university isn’t actually trying to push students into an Apple purchase so much as they are trying to give them the opportunity to make one, should they so desire. The reason they attached “required” to the iPhone and iPod touch is so that the hardware would then qualify for inclusion in financial aid requests. And why Apple? Familiarity, according to the administration, although some students aren’t so sure, and have started a Facebook protest group, citing a possible conflict of interest between the school and the Cupertino-based electronics company.

    I’m of the opinion that while this smacks of product placement or some kind of innovative marketing relationship, the effect is relatively harmless at worst, and genuinely helpful to some at best. By specifying a platform like the iPod touch and iPhone, the school also sets itself up for developing and releasing school and program-specific apps later on. Heck, I wish more schools would make Apple notebooks and desktops “required” in the same way, so that you could likewise claim those in your student expenses. The challenge is making sure that “required” on paper doesn’t become “required” in effect, and put students who don’t opt-in at an educational disadvantage.


    Переслать  


  • Kindle Store Now Optimized for iPhone Viewing, Better App Integration

    kindle1Amazon has been making moves left and right lately. Since the launch of the Kindle 2 in late February of this year, they’ve rolled out a number of interesting developments, including the release of the Kindle for iPhone app, the acquisition of popular e-book reader Stanza for the iPhone/iPod touch platform, and the recent release of the large-format Kindle DX. Today, they kept the hit train rolling with an update to their web-based Kindle Store that gives it a more iPhone-friendly formatting.

    Now clicking “Get Books” in the Kindle iPhone app will take you to a shopping site nicely optimized for Mobile Safari, so you don’t have to squint and swipe around just to give Amazon your money. It definitely improves the user experience of book shopping, but I think that compared with some other iPhone-optimized site designs based on similar concepts (i.e., deviantArt’s mobile site), they could still make further improvements to make the experience even more pleasant. Why not take a cue from the company you just acquired and build an integrated catalog browser into your app? Stanza will probably be keen to help you out, now that you own them.

    Kindle for iPhone is the top e-book app in the U.S. store, having overtaken longtime leader Stanza prior to their purchase of the much smaller company. It’s still unclear what their specific aims were in acquiring Stanza, since they’ve yet to either offer Kindle content in the app, or give Kindle for iPhone users access to the titles they may have in their Stanza library. One thing is clear, though — Amazon is serious about the iPhone platform, even though they offer a competing device. Looks like they want their cake, and they want to eat it, too. We’ll see how that works out for them.


    Переслать  


  • Beta Watch: Shiretoko Firefox 3.5 Intel-Optimized Browser

    shiretoko_icon

    Last week I posted a Beta Watch mini-review of Firefox 3.5 Beta 4, Mozilla’s sixth development milestone and fourth beta release of what will become Firefox 3.5.

    Unfortunately I found that, like earlier beta releases of FireFox 3.1/3.5, beta 4 was a perplexingly sluggish performer on my setup, which is a 2.0 GHz unibody MacBook running OS 10.5.6 Leopard on a slow rural dial-up connection. Indeed, I found it slower than some of the earlier builds had been on my previous production machine, a 1.33 GHz G4 PowerBook. Go figure.

    Several folks commented, including Chris Latko, developer of the “Shiretoko” Mac Intel optimized variant of the Firefox beta. He suggested that I grab a download of his browser and give it a try.

    Sounded intriguing, and I did just that. My expectations were not terribly high, but I was pleasantly surprised to see the Firerox 3.5 beta come to life thanks to Chris’s optimization tweaks, whatever they are. The difference between his Shiretoko version and the standard Firefox 3.5 beta is quite tangible, at least on my rig.

    Chris says he’s been using WebKit, Minefield, and increasingly Opera as his main browsers for a while now. I’m an Opera fan, too, but like him I use several browsers. He notes on his web site that he’d been hankering after an Intel-optimized build of Firefox 3.5, hadn't found one, and decided to make one himself. I’m glad he did.

    Shiretoko (named after the Shiretoko National Park in northern Japan) transparently picked up where Firefox left off, even opening my saved browser session, and it runs the few Firefox add-on plugins I use as well. Aside from running faster and its distinctive application icon, it could just as well be Firefox 3.5b.

    Anyway, it works for me, and puts Firefox back in the game on my rig. Thanks for the suggestion, and for this service to the Mac community, Chris.


    Переслать  


  • Thanks to TheAppleBlog Sponsors!

    We’d like to say thanks to this month’s sponsor of TheAppleBlog:

    • WunderRadio: Wunder Radio provides access to thousands of streaming Internet radio stations and on your iPhone or Windows Mobile Phone.
    • Mozy: Back up your photos, music, and files with Mozy for as low as $4.34 per month.

    Переслать  


  • App Review: Easy Wakeup

    App Quick Stats

    Easy Wakeup

    Easy Wakeup is an advanced alarm clock, designed to gently nudge you from your slumber, helping you wake up alert and ready to tackle the day’s tasks.

    For some of us, sleep is a real bane — an interruption to what would otherwise be the perfect non-stop working schedule. To others, settling in to the glorious dirge of dreaming is a true joy. Regardless, we’ve all got to wake up sometime and, aside from those truly gifted natural-risers, most of us rely on an alarm clock.

    Easy Wakeup is pitched as a smart alarm clock for the iPhone. Alongside waking you at the optimal moment, based on your sleep cycle, it also incorporates custom alarm tones and sleep-related statistics.

    The Science of Sleep

    Free Terra, the team behind the app, claims that Easy Wakeup helps you rise refreshed, energized and alert. The core features of the app are based on their assertion that the phase of sleep in which a person wakes up, affects how they feel throughout the day.

    easywakeup_timeset

    The idea is that Easy Wakeup prompts you to wake up at the optimal moment, rather than one pre-determined specific time. The developers say that there’s a link between our sleep phases and our body movements. With this in mind, in order to determine when we should rise, Easy Wakeup monitors your movements as you sleep and then calculates the ideal moment to wake you.

    Having swallowed all the pseudo-science, this seems like a reasonable enough assertion to a lay-sleeper like myself. In testing Easy Alarm, I wanted to determine whether the app would bring any additional benefit to me, beyond that of a traditional alarm clock.

    Looking Sleepy

    Seeing as many users will be interacting with the app when they go to bed, or when they rise from bed, I expected the app to feel comfortable and intuitive. Instead, perched on the edge of my futon, trying to configure Easy Wakeup for the first time, I found the app’s look and feel inconsistent and frustrating.

    The Alarm Clocks screen is where, much like the iPhone’s Clock app, you’ll configure multiple alarms – useful for those with shifting sleep routines, or partners who rise at a separate time. The alarms incorporate a cavalcade of settings, from customizable melody, to snooze and wake up intervals.

    easywakeup_multiple_alarms

    The incorporation of shake to snooze is terrific. It’s a smart way of having a snoozing user interact with the device. However, being able to configure wake up intervals felt confusing — I just didn’t understand what palpable affect this would have on my sleeping and waking.

    Of note also is the Statistics screen, a section of the app which collates data relating to your sleeping patterns, specifically your rest time. The data is then rendered as an ugly looking graph which can be e-mailed out to acquaintances showing an unnatural interest in your sleep patterns.

    easywakeup_graph_stats

    While it could be wonderful to have access to these kind of statistics, the information it’s recording seems to be useless. I’d love to know how much I rolled around on a given night, or if I mumbled in my sleep, or to be able to consistently rate the quality of a night’s sleep and compare this data over time. Unfortunately, Easy Wakeup’s statistics just aren’t that useful, imaginative or fun.

    Sweet Dreams

    Setting it up for a night’s sleep I discovered that Easy Wakeup certainly isn’t as easy as the name asserts. Once the alarm is activated, the app instructs you to turn on Airplane Mode, turn off Wi-Fi, set the iPhone brightness to a minimum, charge the battery and attach the iPhone to your hand.

    easywakeup_instructions

    A frustrating, overwhelming, and downright irritating list of instructions that pile on the stress when you’re attempting to settle in for a good night’s sleep. The app is left open while you’re sleeping, hence the brightness needs to be turned down and the battery charged. Frankly, leaving your iPhone on all night with an app open just isn’t going to work for the vast majority of users.

    And then there’s the big deal-killer: attaching the iPhone to your hand so that the app can record your movements. Apart from this instruction being utterly odd, killing any enthusiasm I had left for the app, I was quite befuddled when attempting to determine how best my iPhone should be literally attached to my hand: would I use a belt, string, tape, glue, a staple-gun?

    Summing Up

    The bafflingly long list of instructions, apexing with the über-punchline of, “attach the iPhone to your hand,” utterly ruin this app. I don’t think it’s a realistic, comfortable, or natural proposition to expect users to actually hold or attach the iPhone to their hand while sleeping.

    Not being a sleep specialist, dream doctor, or nocturnal nerd, I can’t vouch for Free Terra’s pseudo-scientific assertions when it comes to the theory behind this app. However, sleeping with the iPhone in hand just doesn’t sit (or lie) right with me.

    Furthermore, the app is ugly, counter-intuitive, and the stats seem to be useless. For the record, after trying the app for a few nights, I found that my sleep routine was completely disrupted by having the iPhone attached. The stress of having it there caused me to wake up early anyway, thus negating the actual alarm clock functionality. In summary, you’ll sleep better if you avoid Easy Wakeup.


    Переслать  








rss2email.ru       отписаться: http://www.rss2email.ru/unsubscribe.asp?c=6893&u=24004&r=311667163
управлять всей подпиской: http://www.rss2email.ru/manage.asp