- GraphnCalc83: A Review of a Faithful TI-83 Lookalike for iOS
- 01 May 2015 09:09:24 pm
- Last edited by Alex on 04 May 2015 08:46:14 pm; edited 2 times in total
Introduction
I was provided a gift code and invited to look at a TI-83/84 "Work-alike" clone, GraphnCalc83, for iOS. The app is a universal binary so it supports both the iPad and the iPhone/iPod. I'll be reviewing this app on an iPhone 6 on iOS8, I did use it on an iPad as well.
I've managed to create a few simple programs to get familiar with the app. I created a simple math app which loops until the correct answer is given and a program to check the getKey values. The good news is that the getKey values are the same as the the TI-83 family. However, there are inconsistencies with other parts of this virtual calculator. While porting one of my existing programs I found there is no method of setting the bounds of the graph screen: Xmin, Xmax, Ymin, and Ymax do not exist. Also, the graph screen takes up the whole device making the traditional use of the graph screen obsolete for a game or, like my program, a utility; you can't press the calculator buttons while viewing the graph screen. There is a solution in the form of a new token called "Button" that creates, obviously, a button that when touched jumps to the designated label.
Writing & Editing a Program
I generally find it really difficult to do a bunch of typing on a touch screen device. I find that it's easier to stare at the screen and type using the physical shapes and indentations of keys than tapping on a piece of glass. Nonetheless, the app is remarkable. Between the well documented syntax for each command and the spacious buttons on my iPhone 6, I didn't have too many issues.
Over the few months I had the app and the long hiatus since I last used a calculator I didn't get very familiar with the layout and was quite slow in getting programs put together, a lot of my time was spent searching the catalog. As a bonus, you are able to provide tags, a description and, notes when creating your program. It'll allow you to find your programs much easier when you have a lot. There's no search box to quickly find a program but there is a scrolling tag selection, just tap "Display All Programs" and you can then select a keyword to sort by.
Debugging and Documentation
There's also a Debug button. It allows you step through your BASIC program and see the flow of your program. It helped me understand why certain lines of code were being skipped when they shouldn't have. There's plenty of other uses for Debug as well!
There's also a really nifty feature that will show you the syntax of the function you are filling out, commonly known as tooltips. These will tell you the basic syntax of the command while the catalogue will have a more detailed description which can also include errors and how to prevent them. Even then, learning how functions work will take some trial and error. For the aforementioned "Button" command, I took about 10 minutes before I followed the example set in the Catalogue description. To understand, let me explain.
Button creates a tappable button on the graph screen. It works similar to the Menu function but you can only create one button at a time. Button is also tied to the X & Y of your device screen, not the graph screen. It seems rather odd to use pixel coordinates on a screen with such high PPI rather than the graph coordinates. In further testing I found out that Line, Horizontal & Vertical all rely on the graph coordinates opposed to the pixel coordinates of the device. In future versions I'd like to see either a flag added to Button so that a programmer can differentiate between device and graph coordinates or a token to lock the zoom of the graph screen so that the programmer can keep the buttons along side the GUI.
Importing programs from the web is very hit and miss. I was lucky enough to find a program that worked, but it still wasn't 100%. The program worked very well, as referenced by the animated gif below but when ever I wanted to add tax the value would be $0. I went in to the program editor and discovered the program needed to make a custom list and the iOS app doesn't support this nor reported it as an error. If your program uses the home screen for everything and doesn't need a custom list, it'll successfully port over.
Off site documentation is pretty sparse. I searched Google a few times to find no tutorials or help from the developer. It's no fault of his own, honestly, but there will be a lot of trial and error and exploration of functions when using this app. If you download the app I will do my best to aide any of you with the few quirks and workarounds that I have found.
Sharing Your Programs
It's a bit different than you may be use to. Pressing 2nd then "Share" brings up a menu where you can select what you want to share: Programs, Lists, Matrix, Variables, Y-Vars (Graph Equations), Strings, History (the entire homescreen printed to PDF) and, your last calculation. Importantly, you can share your programs as the actual files or as PDFs which you can send via e-mail, text/iMessages or upload to an outside server using an app like Dropbox. If it's important, the PDF file are indented by level of logic: If:Then:Else:End, While:End, For:End, etc just like the program is on-screen. I've found that e-mail is the best way to share a program. You can also save your program to PDF, so others can see the code without requiring an iOS device.
Despite the name, the app will not run TI-83 programs unless they are reworked to included the quirks of a touch-screen device and other work-arounds this iOS app has implemented. Also, as mentioned above, your program will work if it strictly uses the home screen and Lists 0-9.
Overall
The app is remarkable. The developer set out to create a graphing calculator for iOS that does its best to emulate TI-83 programs. While I can't recommend this app as a substitute for a physical calculator, due to the extreme differences and lack of complete support for TI-83+ programs. I can recommend this app to those that can't afford a graphing calculator and have a desire to learn coding but do have access to an iOS device like an iPod or iPad. I'd like to see iCloud integration to a degree, of course the more integrated the better but save/share and retrieve would suffice. The app doesn't even support "File Sharing" under iTunes, which means the only way to get your programs off and on your digital calc is to e-mail them. If File Sharing is supported, retrieving and sending programs would be as simple as dragging and dropping to/from the File Sharing window or clicking the appropriate buttons. If this application takes off it'd be amazing if we'd eventually see a centralized way to share programs with others similarly to ticalc.org.
In brief, it's not for everyone but for those with an iOS device and a need for a graphing calc with programming capabilities this is a must. You can check it out on the App Store here (USD $5.99).
Gif of a program working from the Archives (program linked above):
I was provided a gift code and invited to look at a TI-83/84 "Work-alike" clone, GraphnCalc83, for iOS. The app is a universal binary so it supports both the iPad and the iPhone/iPod. I'll be reviewing this app on an iPhone 6 on iOS8, I did use it on an iPad as well.
I've managed to create a few simple programs to get familiar with the app. I created a simple math app which loops until the correct answer is given and a program to check the getKey values. The good news is that the getKey values are the same as the the TI-83 family. However, there are inconsistencies with other parts of this virtual calculator. While porting one of my existing programs I found there is no method of setting the bounds of the graph screen: Xmin, Xmax, Ymin, and Ymax do not exist. Also, the graph screen takes up the whole device making the traditional use of the graph screen obsolete for a game or, like my program, a utility; you can't press the calculator buttons while viewing the graph screen. There is a solution in the form of a new token called "Button" that creates, obviously, a button that when touched jumps to the designated label.
Writing & Editing a Program
I generally find it really difficult to do a bunch of typing on a touch screen device. I find that it's easier to stare at the screen and type using the physical shapes and indentations of keys than tapping on a piece of glass. Nonetheless, the app is remarkable. Between the well documented syntax for each command and the spacious buttons on my iPhone 6, I didn't have too many issues.
Over the few months I had the app and the long hiatus since I last used a calculator I didn't get very familiar with the layout and was quite slow in getting programs put together, a lot of my time was spent searching the catalog. As a bonus, you are able to provide tags, a description and, notes when creating your program. It'll allow you to find your programs much easier when you have a lot. There's no search box to quickly find a program but there is a scrolling tag selection, just tap "Display All Programs" and you can then select a keyword to sort by.
Debugging and Documentation
There's also a Debug button. It allows you step through your BASIC program and see the flow of your program. It helped me understand why certain lines of code were being skipped when they shouldn't have. There's plenty of other uses for Debug as well!
There's also a really nifty feature that will show you the syntax of the function you are filling out, commonly known as tooltips. These will tell you the basic syntax of the command while the catalogue will have a more detailed description which can also include errors and how to prevent them. Even then, learning how functions work will take some trial and error. For the aforementioned "Button" command, I took about 10 minutes before I followed the example set in the Catalogue description. To understand, let me explain.
Button creates a tappable button on the graph screen. It works similar to the Menu function but you can only create one button at a time. Button is also tied to the X & Y of your device screen, not the graph screen. It seems rather odd to use pixel coordinates on a screen with such high PPI rather than the graph coordinates. In further testing I found out that Line, Horizontal & Vertical all rely on the graph coordinates opposed to the pixel coordinates of the device. In future versions I'd like to see either a flag added to Button so that a programmer can differentiate between device and graph coordinates or a token to lock the zoom of the graph screen so that the programmer can keep the buttons along side the GUI.
Importing programs from the web is very hit and miss. I was lucky enough to find a program that worked, but it still wasn't 100%. The program worked very well, as referenced by the animated gif below but when ever I wanted to add tax the value would be $0. I went in to the program editor and discovered the program needed to make a custom list and the iOS app doesn't support this nor reported it as an error. If your program uses the home screen for everything and doesn't need a custom list, it'll successfully port over.
Off site documentation is pretty sparse. I searched Google a few times to find no tutorials or help from the developer. It's no fault of his own, honestly, but there will be a lot of trial and error and exploration of functions when using this app. If you download the app I will do my best to aide any of you with the few quirks and workarounds that I have found.
Sharing Your Programs
It's a bit different than you may be use to. Pressing 2nd then "Share" brings up a menu where you can select what you want to share: Programs, Lists, Matrix, Variables, Y-Vars (Graph Equations), Strings, History (the entire homescreen printed to PDF) and, your last calculation. Importantly, you can share your programs as the actual files or as PDFs which you can send via e-mail, text/iMessages or upload to an outside server using an app like Dropbox. If it's important, the PDF file are indented by level of logic: If:Then:Else:End, While:End, For:End, etc just like the program is on-screen. I've found that e-mail is the best way to share a program. You can also save your program to PDF, so others can see the code without requiring an iOS device.
Despite the name, the app will not run TI-83 programs unless they are reworked to included the quirks of a touch-screen device and other work-arounds this iOS app has implemented. Also, as mentioned above, your program will work if it strictly uses the home screen and Lists 0-9.
Overall
The app is remarkable. The developer set out to create a graphing calculator for iOS that does its best to emulate TI-83 programs. While I can't recommend this app as a substitute for a physical calculator, due to the extreme differences and lack of complete support for TI-83+ programs. I can recommend this app to those that can't afford a graphing calculator and have a desire to learn coding but do have access to an iOS device like an iPod or iPad. I'd like to see iCloud integration to a degree, of course the more integrated the better but save/share and retrieve would suffice. The app doesn't even support "File Sharing" under iTunes, which means the only way to get your programs off and on your digital calc is to e-mail them. If File Sharing is supported, retrieving and sending programs would be as simple as dragging and dropping to/from the File Sharing window or clicking the appropriate buttons. If this application takes off it'd be amazing if we'd eventually see a centralized way to share programs with others similarly to ticalc.org.
In brief, it's not for everyone but for those with an iOS device and a need for a graphing calc with programming capabilities this is a must. You can check it out on the App Store here (USD $5.99).
Gif of a program working from the Archives (program linked above):