divendres, 31 de gener del 2014
GraphSketcher is now open source
GraphSketcher is a simple, elegant tool for quickly sketching graphs and plotting data — but you don’t even need data to get started. It’s perfect for reports, presentations, and problem sets where you need to produce sharp-looking graphs on the fly.
The OmniGroup stated on his blog that they will stop selling OmniGraphSketcher. Now is open source. You can download the source code from GitHub. I f you prefer to download the binary you can also do. Enjoy !
dijous, 23 de gener del 2014
NFC standart: Why Apple does not like it?
As you know Apple does not support NFC. Also Apple does not like NFC and promotes iBeacons, based on Bluetooth LE.
There are some reasons for this. NFC has a number of disadvantages:
- Another radio? No way Smartphones have to accommodate a number of radios. An iPhone5 must include radios for LTE (or GSM), WIFI and Bluetooth.
- Serial interaction. NFC works well in a one-to-one interaction. But what happens when 10 smartphones want to interact with an NFC tag? the tenth will have to wait until the first nine have had a go.
dimecres, 22 de gener del 2014
New features of iOS7: Dimiss the keyboard while scrolling
Now you can dismiss the keyboard while scrolling. Sure you know this nice experience from Messages.app.
Now your app can behave like Messages.app just by changing a single property on your Storyboard, or alternatively by adding one line of code!
This property uses the new
UIScrollViewKeyboardDismissMode
enum. The possible values of this enum are as follows:UIScrollViewKeyboardDismissModeNone // the keyboard is not dismissed automatically when scrolling UIScrollViewKeyboardDismissModeOnDrag // dismisses the keyboard when a drag begins UIScrollViewKeyboardDismissModeInteractive // the keyboard follows the dragging touch off screen, and may be pulled upward again to cancel the dismiss |
Motorola provides an iCloud migration tool
Motorola appears to be making a play for iPhone users, launching a tool yesterday to allow an iPhone user to easily transfer their contacts and calendars from iCloud to a Google account, ready for use on an Android phone.
The option has been added to the Moto Maker customization tool for the Moto X handset, which allows buyers to choose from 32 color combinations
But the wording of Google’s announcement suggests it may be the first step in a more aggressive move on the iOS market by parent company Google. In his Google+ post, Motorola Mobility VP Punit Soni commented:
We added the ability to migrate your iPhone contacts and calendar to the Moto X (from Motomaker.com). There is a long way to go, but its a start…
New features of iOS 7: Check which wireless routes are available
Finally, in iOS7 you are able to able to know if a remote device is available via AirPlay, Bluetooth, or some other wireless mechanism. This allows your app to behave appropriately, such as hiding an AirPlay icon when that service isn’t available on other devices.
The following two new properties and notifications have been added to
MPVolumeView
:@property (nonatomic, readonly) BOOL wirelessRoutesAvailable; // is there a route that the device can connect to? @property (nonatomic, readonly) BOOL wirelessRouteActive; // is the device currently connected? NSString *const MPVolumeViewWirelessRoutesAvailableDidChangeNotification; NSString *const MPVolumeViewWirelessRouteActiveDidChangeNotification; |
The MPVolumeViewWirelessRoutesAvailableDidChangeNotification notification allow us to know when the availability of AirPlay routes has changed. The MPVolumeViewWirelessRouteActiveDidChangeNotification notification allow the user to know when the user has changed the route currently in use.
dimarts, 21 de gener del 2014
Upgrade the RAM memory of your mac
Upgrading the memory of your mac is not difficult at all. May be the most important is knowing the maximum RAM memory our Mac could support. But you can easily know browsing the OWC guide
Shortcuts for Mac Safari
Open a link in a new tab
Click the link + Cmd
Open a link in a new window
Click the link + alt + Cmd
Cycle to tabs
ctrl + TAB (works also for Google Chrome)
Cmd + Shift + left arrow (or Cmd + Shift + right arrow)
Close the active tab
Cmd + W
Refresh a tab
Cmd + R
Save a link to the Reading list
Shift + click the link
dilluns, 20 de gener del 2014
New features of iOS7: dismiss keyboard with a swipe gesture
Surely you know that in the Messages app you can dismiss the keyboard with a swipe gesture. Now with iOS 7 you can have this behaviour. Apple has added the property keyboardD on
Here is the storyboard property to change to dismiss the keyboard on scroll:
UIScrollView
to make your life a little easier.Here is the storyboard property to change to dismiss the keyboard on scroll:
New features of iOS 7: multilanguage text to speech
Now you can make your app speech !
iOS7 introduces the classes
AVSpeechSynthesizer
and AVSpeechUtterance
. Using this two classes to provide speech synsthesis on your app is very easy. See the following code:AVSpeechSynthesizer *synthesizer = [[AVSpeechSynthesizer alloc] init]; AVSpeechUtterance *utterance = [AVSpeechUtterance speechUtteranceWithString:@"Wow, I have such a nice voice!"]; utterance.rate = AVSpeechUtteranceMaximumSpeechRate / 4.0f; utterance.voice = [AVSpeechSynthesisVoice voiceWithLanguage:@"en-US"]; // defaults to your system language [synthesizer speakUtterance:utterance]; |
That is! Only takes five lines of code to add speech to your app.
New features of iOS: detect when a user takes a screenshot
In any iOS device you can take an screenshot by:
1) Pressing and holding the Home button (the main button below the screen)
2) While the menu button is held down, press the power/lock button (the switch on the top edge of the device).
But how to detect if the user took an screenshot? Well, now with iOS is easy. Welcome to the brand-new notification event UIApplicationUserDidTakeScreenshotNotification. Just subscribe to this event to know when an screenshot is taken.
New features of iOS7: method firstObject finally available
Until now, you (and many other people) asked the followed question:
Why NSArray does not have a firstObject method? Well, with iOS 7 finally Apple you can write:
NSArray *array = @[@1, @2, @3]; NSLog(@"First Object: %@", [array firstObject]); // 1 NSLog(@"Last Object: %@", [array lastObject]); // 3
New features of iOS7: iOS now request user consent to use the microphone
You know that iOS request user permission in order to retrieve user location. The same for accessing user contacts, reminders or photos. Now, with iOS 7 access to the microphone is also on that list. Note that if users denies access to the microphone, then the app will not be able to use the microphone.
In order to prompt the user to grant access to the microphone you can use the following code:
// The first time you call this method, the system prompts the user to grant your app access
// to the microphone; any other time you call this method, the system will not prompt the user // and instead passes the previous value for 'granted' [[AVAudioSession sharedInstance] requestRecordPermission:^(BOOL granted) { if (granted) { // the user granted permission! } else { // maybe show a reminder to let the user know that the app has no permission? } }]; |
New features of iOS7: Use native Base64
iOS 7 introduces the following four new
NSData
methods to manipulate Base64-encoded data:// From NSData.h /* Create an NSData from a Base-64 encoded NSString using the given options. By default, returns nil when the input is not recognized as valid Base-64. */ - (id)initWithBase64EncodedString:(NSString *)base64String options:(NSDataBase64DecodingOptions)options; /* Create a Base-64 encoded NSString from the receiver's contents using the given options. */ - (NSString *)base64EncodedStringWithOptions:(NSDataBase64EncodingOptions)options; /* Create an NSData from a Base-64, UTF-8 encoded NSData. By default, returns nil when the input is not recognized as valid Base-64. */ - (id)initWithBase64EncodedData:(NSData *)base64Data options:(NSDataBase64DecodingOptions)options; /* Create a Base-64, UTF-8 encoded NSData from the receiver's contents using the given options. */ - (NSData *)base64EncodedDataWithOptions:(NSDataBase64EncodingOptions)options; |
These methods let you easily convert
NSData
objects to and from Base64, as shown in the following example:NSData* sampleData = [@"Some sample data" dataUsingEncoding:NSUTF8StringEncoding]; NSString * base64String = [sampleData base64EncodedStringWithOptions:0]; NSLog(@"Base64-encoded string is %@", base64String); // prints "U29tZSBzYW1wbGUgZGF0YQ==" NSData* dataFromString = [[NSData alloc] initWithBase64EncodedString:base64String options:0]; NSLog(@"String is %@",[NSString stringWithUTF8String:[dataFromString bytes]]); // prints "String is Some sample data" |