Categories
android followchess ios

Issue with Subscriptions on Follow Chess iOS v2.0

Today (Mar 28) we came to know of a critical bug in the v2.0 of Follow Chess iOS App.

Issue: Existing active Subscriptions (monthly & yearly) ceased to work after upgrading to 2.0 and the App was working as a Free version (showing Ads and restricting features).
I apologize for this.

Re-installing the App or restoring the purchase does not help and the only solution is to wait for the new App update.

We have already fixed the issue and we are waiting for Apple’s approval (in times like these, I miss Google/Android’s ability to release a new App update in couple of hours!). We have also requested Apple for an expedited App review (normal App reviews take about 5-7 days).

Thanks for your patience and kind understanding.

PS : Once the new App update is available, please try the RESTORE option from the Pro Screen to restore your subscription, in case it does not automatically do it.

Update (Mar 29) : The expedite review process did work and Apple approved the bug-fix v2.0.1 within a day!
So with the latest version now available in the App Store, the issue is fixed.

Categories
android followchess ios

Follow Chess v2.0 for iOS now available!!

Follow Chess v2.0 for iOS is right in time for the final 2 rounds of the Candidates 2016 games!
This is a major update and has lots of features (which the Android version received few weeks back)

What’s new in v2.0?

  • New Tourney Notifications – Now you will receive notifications when new tournaments are added to the App! By default, the App will only try to notify you of tournaments which may be of interest to you (Setting – Tourney Notification – Smart). However, if you wish to receive notifications for ALL tourney, please change the aforementioned setting to ALL
  • Watch List – You can choose to watch any live game from different tournaments, all in a single screen!

  • Thinking time per move – App now shows clock time per move, which provides a better insight into the game and the player’s thinking/strategy.

  • Engine Analysis – Just like on Android, you can now analyze the current game/position with help of a Chess engine. Its a separate App (a basic version of Analyze This App), which can be installed for free from the App Store. More features will be added to Analyze This App in due course of time.
  • Live Video – You can also watch live video commentary for tournaments which are broadcast via YouTube.
  • Search Games – You can now search for games of a Player or opening or result in the All Games screen

  • Tap player name in Standings screen to directly load all his/her games
  • And bug fixes and improvements!
Categories
android followchess ios

Follow Chess App is now on iOS!!

After a long wait (and some anxious moments with Apple [read at the bottom of this post!]), Follow Chess is finally on iOS!
I am personally pleased and happy with the End product.

The Story!

On Android, the App received a very warm response and I have loved reading the kind feedback and suggestions from everybody. It was also personally very satisfying, since I could learn lots of new Technologies along the way and do some cool things. But what could be more gratifying than a Tweet from your Chess idol!!?

@asimpereira will do.. use your app a lot almost the best way to follow chess

— Viswanathan Anand (@vishy64theking) November 2, 2014

Consequently I started receiving more and more responses for an iOS version! Then began the hunt for a iOS Developer who could help! In fact I even received some cheeky remarks from Android fans, that the App be kept exclusive to Android, since thats one thing which the iOS guys would not be able to enjoy!

The iOS project which started with one developer in Q2 of this year, ended with another Developer completing it couple of weeks back (Developer #1 quit in between!)! It was a very interesting journey and I couldn’t have been more happy to see the App finally on iDevices!

What’s in v1.0?

Many Live tournaments – Follow Chess aims to cover as many top international (and National) tournaments as possible! So besides the mega European Team & Showdown in Saint Louis, it also covers the Indian Women’s Premiere, MaxEuwe Matches (ft veterans vs young guns) & TCEC Superfinal (Komodo vs Stockfish)

 And ofcourse, there are many other tournament games to follow; tourneys which got over in the recent past or as old as the 2014 World Rapid and Blitz!

  • Multi-boards in the same screen – With Follow Chess, you can keep a tap on all the LIVE games of a tournament, on a single screen! So you don’t need to keep changing the boards or screens!         

  • Make your own moves – When you choose any individual game to view, you can even play out your own moves in a sub-variation to understand what could have happened if the player had chosen a different path (in the same screen!) And not just that, the App is smart enough to know when an actual move is made in the Live game and gently inform you, so you can get back to following the action! Now what better way to learn from the Masters!!
  • Follow your country-men (women) – Follow Chess was really built with the intention of making it easy to follow and watch games that you may like. So if you choose your country (in the first popup or via Settings), Follow Chess will smartly show games of your country men on top! So you don’t have to scroll down looking for them.
  • Standings | All Games – Ofcourse there are lots of things you can do with Follow Chess. The App can show you the latest standings (and even highlight where your country-men is placed!). You can also play through games from the Previous rounds and all the old tourneys available in the App! (Sorry some features are PRO only)
  • You also get to see when the next round of each Tourney starts, in your local time!

However, this is only the first version and many exciting features (some of which are already in the Android version), will be added soon (but definitely at a much faster rate than what I have been able to do with iChess for iOS & Chess Book Study for iOS). Yes, but all Apps will get their due share of Upgrades and features which the Android counter parts have been enjoying all these years!

Go download now or tell your Chess buddy! Please do leave your feedback in the App Store, or drop me an email with your suggestions/feedback!




PS. Why I dislike Apple!

The App should have been available 7 days ago, but for Apple’s difficult-to-comprehend App Approval process. They wanted that the App Description in the App Store should have the below lines related to Subscriptions, which I think not many users would really bother to read anyways. But hey, please please read this, for Apple’s sake!!

AUTO-RENEWING SUBSCRIPTIONS:

You can purchase the Pro version of the App with a monthly or yearly Subscription. This entitles you to the current PRO features (View All games from previous rounds, Remove Ads, View All Standings) as well as any PRO features that may be added in the future.

– Subscription can be for a Month or Year
– Price (USD 0.99 for a Month, USD 5.99 for a Year). Local price may vary
– Subscription automatically renews unless auto-renew is turned off at least 24-hours before the end of the current period
– Account will be charged for renewal within 24-hours prior to the end of the current period (USD 0.99 every month & USD 5.99 every year. Local prices may vary)
– You can manage the Subscriptions and turn-off auto-renewal by going to the Account Settings after purchase
– You will not be able to cancel the current subscription during the active subscription period

Privacy policy : http://chess32.in/privacy_policy_followchess.html

Categories
analyzethis android ios

Using Analyze This’ Instant-position analysis from your Android/iOS Chess App


ANDROID
You can use the Instant-position analysis feature of Analyze This from your own Chess App! All you need to do is invoke Analyze This and pass additional Intent extras.

1. Instant-position analysis for current position only
You can send the FEN string of the current position for Instant-position analysis. Note that only the FEN string is sent and not the whole PGN. So users would need to return back to your App in case they wish to analyze some other position.

public static final String PKG_ANALYZE_THIS_FREE 
= "com.pereira.analysis";
public static final String PKG_ANALYZE_THIS_PAID
= "com.pereira.analysis.paid";
public static final String ANALYZE_THIS_ACTIVITY
= "com.pereira.analysis.ui.BoardActivity";
public static final String KEY_FEN = "KEY_FEN";

//Since users may have either the Free or the Paid version of Analyze This, you should check using Package Manager


 //default to free version, 
//but check below if paid version is installed
String analyzeThisPackageName = PKG_ANALYZE_THIS_FREE;
if (isInstalled(this, if (isInstalled(this, PKG_ANALYZE_THIS_PAID)) {
//paid version is installed, so use it!
        analyzeThisPackageName = PKG_ANALYZE_THIS_PAID;
}

Intent intent = new Intent();
//send the "fen" string from your program
intent.putExtra(KEY_FEN, fen);
Intent intent =
new Intent();
try {
startActivity(intent);
}
catch (ActivityNotFoundException e) {
//TODO neither Free nor Paid version of Analyze This is installed,
so show message to the user to install the App from the Play store
}

//Method to check if the given package is installed on the device
public static boolean isInstalled(Context context, String packageName) {
boolean installed = true;
try {
PackageInfo pinfo =
context.getPackageManager().getPackageInfo(packageName, 0);
}
catch (NameNotFoundException e) {
installed =
false;
}
return installed;
}

2. Instant-position analysis with whole PGN
You can also send the whole PGN game to Analyze This and have it immediately start analyzing the position at a given ply number: (new addition in Analyze This v3.1.4). The added advantage of sending the whole PGN text is that users can also move back and forth through the game without having to return back to your App.

//complete pgn text
intent.putExtra(android.content.Intent.EXTRA_TEXT, pgn); 
ComponentName name = new ComponentName(analyzeThisPackageName,
ANALYZE_THIS_ACTIVITY);

//plyNum (half-move) at which to start analyzing
intent.putExtra(KEY_PLY_NUM, plyNum);

intent.setComponent(name);


BONUS!
You can even ask Analyze This to flip the board or choose a different board color which suits your application’s board color.

 //Integer value, where 0="Aqua", 1="Blue", 2="Brown", 3="Gray", 
4="Green" , 5="Fritz", 6="Sky Blue"
intent.putExtra("KEY_COLOR", 0);
intent.putExtra("KEY_FLIPPED", true);

//set the component
ComponentName name = new ComponentName(analyzeThisPackageName,
ANALYZE_THIS_ACTIVITY);
intent.setComponent(name);

public static final String KEY_PLY_NUM = "KEY_PLY_NUM";

Intent shareIntent = new Intent(android.content.Intent.ACTION_SEND);
intent.setType("application/x-chess-pgn");

try {
startActivity(intent);
} catch (ActivityNotFoundException e) {
//TODO neither Free nor Paid version of Analyze This is installed,
 so show message to the user to install the App from the Play store
}
iOS
You can send the whole PGN game to Analyze This and have it immediately start analyzing the position at a given ply number. The added advantage of sending the whole PGN text is that users can also move back and forth through the game without having to return back to your App.Your iOSAppcan interact with Analyze This through custom URL schemes and copy PGN data to clipboard. Analyze This then starts analyzing the pgn copied by your App to the clipboard.
Step 1: Sending whole PGN to Analyze This
You can even ask Analyze This to flip the board or choose a different board color which suits your application’s board color.
static NSString *kPasteboardName = @"pgnPasteBoard";

//MUST – The pgn string that should be sent to Analyze This.
Currently the App only accepts a single game in pgn string format
static NSString *kPgnKey = @"pgn";

//OPTIONAL - the position at given ply which Analyze This will jump to
static NSString *kPlyKey = @"ply";

//OPTIONAL – if Analyze This should immediately start analyzing the position.
 Default -
static NSString *kAutoEngineKey = @"autoengine";

//OPTIONAL - Integer value where 1=”Aqua”, 2=”Blue”, 3=”Brown”,
4=”Gray”, 5=”Green”, 6=”Fritz” (starts from 1 not 0)
static NSString *kColorIndex = @"colorIndex";

//OPTIONAL - whether Analyze This should flip the board [true|false]
static NSString *kFlipped = @"boardFlip";
//Open Analyze This app and analyze the pgn
- (void)analyzeTapped {
NSInteger colorIndex = 1; // ex. Aqua board
BOOL isFlip = false;
NSNumber *currentPly;
// get pgn string from your app
NSString* pgnStr;

NSString *customURL = [NSString
stringWithFormat:@"apxchesspgn://?%@=%@",kPgnKey,
 kPasteboardName]; // configure the url
customURL = [customURL stringByAppendingString:
[NSString stringWithFormat:@"&%@=%@",
 kPlyKey, currentPly]]; 
//plyNum (half-move) at which to start analysing
customURL = [customURL stringByAppendingString:
[NSString stringWithFormat:@"&%@=%@",
 kAutoEngineKey, @(true)]]; 
// start engine when Analyze This loads
customURL = [customURL stringByAppendingString:
[NSString stringWithFormat:@"&%@=%ld",
 kColorIndex, (long)colorIndex]]; 
// colour of your choice
customURL = [customURL stringByAppendingString:
[NSString stringWithFormat:@"&%@=%d",
 kFlipped, isFlip]]; 
// flipped bool
// create a UIPasteboard with name “pgnPasteBoard”
UIPasteboard *pasteBoard =
[UIPasteboard pasteboardWithName:kPasteboardName 
create:true];

// set pin string to paste Board
[pasteBoard setString:pgnStr];

//if the url opens, it means Analyze This is installed else show the
//user alert to install Analyze This
if ([[UIApplication sharedApplication]
canOpenURL:[NSURL URLWithString:customURL]]) {
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:customURL]];
} else {
UIAlertView *alert = [[UIAlertView alloc]
initWithTitle:@"Install Analyze This"
message:@"Analyze this game with a powerful Chess engine!
Its free. 
Would you like to install it now?"
delegate:self
cancelButtonTitle:nil
otherButtonTitles:@"Install", @"Cancel", nil];
[alert show];
}
}
#pragma mark - UIAlertView Delegate
//Handle button clicks
- (void)alertView:(UIAlertView *)alertView clickedButtonAtIndex:
(NSInteger)buttonIndex
{
switch (buttonIndex) {
case 0:
//install
NSLog(
@"Install");
[self installAnalyze];
break;
case 1:
//Do nothing // cancel button
NSLog(
@"Do nothing");
break;
}
}
//open the Analyze This store listing in iTunes, so that the user can install the App
- (void)installAnalyze{
// Initialize Product View Controller
SKStoreProductViewController *storeProductViewController =
[[SKStoreProductViewController alloc] init];
// Configure View Controller
[storeProductViewController setDelegate:self];
[storeProductViewController loadProductWithParameters:
@{SKStoreProductParameterITunesItemIdentifier : @1090863537} 
completionBlock:^(BOOL result, NSError *error) {
if (error) {
NSLog(@"Error %@ with User Info %@.", error, [error userInfo]);
} else {
// Present Store Product View Controller
// [self presentViewController:storeProductViewController
animated:YES completion:nil];
}
}];
[self presentViewController:storeProductViewController
animated:YES completion:nil];
}
Step 2: Include URL Scheme in info.plist
Be sure to include Analyze This URL scheme in your application’s Info.plist under LSApplicationQueriesSchemes key if you want to query presence of Analyze This on user’s iPhone using -[UIApplication canOpenURL:].

Open Info.plist. Add new element (+). Set key asLSApplicationQueriesSchemes. Set values as apxchesspgn