[App] Learn HTML5 for Android - General Topics

HTML5 is a core technology markup language of the Internet used for structuring and presenting content for the World Wide Web. As of October 2014 this is the final and complete fifth revision of the HTML standard of the World Wide Web Consortium (W3C).The previous version, HTML 4, was standardised in 1997.
Its core aims have been to improve the language with support for the latest multimedia while keeping it easily readable by humans and consistently understood by computers and devices (web browsers, parsers, etc.). HTML5 is intended to subsume not only HTML 4, but also XHTML 1 and DOM Level 2 HTML.
Following its immediate predecessors HTML 4.01 and XHTML 1.1, HTML5 is a response to the fact that the HTML and XHTML in common use on the World Wide Web are a mixture of features introduced by various specifications, along with those introduced by software products such as web browsers, those established by common practice.[5] It is also an attempt to define a single markup language that can be written in either HTML or XHTML. It includes detailed processing models to encourage more interoperable implementations; it extends, improves and rationalises the markup available for documents, and introduces markup and application programming interfaces (APIs) for complex web applications. For the same reasons, HTML5 is also a potential candidate for cross-platform mobile applications. Many features of HTML5 have been built with the consideration of being able to run on low-powered devices such as smartphones and tablets. In December 2011, research firm Strategy Analytics forecast sales of HTML5 compatible phones would top 1 billion in 2013.
In particular, HTML5 adds many new syntactic features. These include the new <video>, <audio> and <canvas> elements, as well as the integration of scalable vector graphics (SVG) content (replacing generic <object> tags), and MathML for mathematical formulas. These features are designed to make it easy to include and handle multimedia and graphical content on the web without having to resort to proprietary plugins and APIs. Other new page structure elements, such as <main>, <section>, <article>, <header>, <footer>, <aside>, <nav> and <figure>, are designed to enrich the semantic content of documents. New attributes have been introduced, some elements and attributes have been removed and some elements, such as <a>, <cite> and <menu> have been changed, redefined or standardized. The APIs and Document Object Model (DOM) are no longer afterthoughts, but are fundamental parts of the HTML5 specification. HTML5 also defines in some detail the required processing for invalid documents so that syntax errors will be treated uniformly by all conforming browsers and other user agents.
Download download apk file : apps1pro.com/learn-html5-201.html

Related

Windows Mobile Web Browsing Bible

The Web browsing scene has been completely changed since I published the previous version of the Windows Mobile Web Browsing Bible, the well-known (it has been frontpaged by Pocket PC Thoughts and made sticky by MobilitySite; the AximSite, BrightHand and the FirstLoox copy is also worth checking out for more reader feedback) source for the (then) all Web browsing-related information. Even though I've posted on all major (and, most of the time, even minor) releases at least one article / review ever since them, there still remained a huge demand for an all-in-one article / Bible that discusses the current state of Web browsing on the platform and thoroughly compares the available solutions, while also including mostly WM5 / WM6-related compatibility information. This means I had to retest almost everything, along with greatly enlargening the scope of the roundup.
A quick notice: you don’t need to even read the previous version of this Bible. It’s only at very few areas of discussion (most importantly, the MultiIE / PIEPlus macros and the Thunderhawk cookie bug) that the reader is referred back to it. I, however, recommend it if you’d like to find out more (comparative) information on ftxPBrowser, the only browser not present in the current Bible (along with my article “Do you know ftxPBrowser?").
First and foremost, do you need Web browsing at all? Why don't you want to prefer offline web browsing via, for example, RSS readers or Web extractor tools like my old Mobipocket Companion Suite for Java programmers? The answer is very simple: lately, Internet access has become really cheap and - with the models released in the last two years and given that mobile operators also very aggressively extend their fast (EDGE / 3G / HSDPA, as opposed to plain GPRS) Internet coverage - traditional Pocket PC's not containing a built-in phone have almost entirely been phased out. This all mean it's much more feasible to browse the Web through an (online) Web browser than a(n offline) news aggregator.
First, let's take a bird's view on the current state of Windows Mobile-based Web browsing.
Fortunately, since the publication of the previous version of this Bible, the available Web browsers have really been enhanced. There are no Web browsers (except for the pretty expensive Thunderhawk and the long-abandoned ftxPBrowser) without major upgrades. The current versions of ALL (other) Web browsers are orders of magnitude better than back in 2005. Furthermore, there are two brand new players on the scene: Opera (with no less than two excellent browsers) and Microsoft Live (with DeepFish, a currently still pretty incapable but still promising browser with probably bright future).
Let us list and quickly evaluate the currently available Windows Mobile (WM for short) Web browsers. Note that in here I don't elaborate on all the (missing) features of all the listed applications; it's in the feature / benchmark / comparison chart (and its explanation) that I do this. I need to point out that, should I have chosen a non-chart-based roundup, the results would be far less comparable. That is, let's assume you look for a browser that allows for direct image saving. Should I have refrained from including the Image in the Context menus and the Save Image As in the Images group, I would have ended up having to elaborate on the image saving capabilities of each and every Web browser in this very article. It would not only have resulted in an article at least ten times longer, but also results that are far harder to compare. You would end up having to make some extensive text searching taking a LOT of time to see how, say, Minimo, Thunderhawk and PIE compare in the area of image saving. With the chart, you just scroll down to the given row and you see at once which of them supports image saving. See the advantage of using feature charts?
1.1 Pocket Internet Explorer (PIE) / Internet Explorer Mobile (IEM) (current version: WM6)
(Note that, while the name “Pocket Internet Explorer” has been changed to Internet Explorer Mobile in Windows Mobile 5 (WM5), I generally refer to this browser as PIE for clarity and simplicity.)
This is the browser you everyone may know. While it’s still lacking some basic functionality (for example, quality scripting and style support and, of course, multitabs), it has really been enhanced in the last two years.
First, it has become MUCH more stable. Before WM5, PIE was widely known for crashes upon encountering certain style sheet (CSS) / HTML structures, of which I've also frequently published reports (example here). Recently, with WM5 versions of PIE, I have never run into similar situations.
Second, it's, now, much faster than before the WM5 (or, more precisely, the WM5 AKU2 - see this and this for some benchmarks in order to be able to compare the speeds of the pre-AKU2 and post-AKU2 browsers; as can clearly be seen, AKU2 brought approximately 50% speed increase on exactly the same WM device, under exactly the same circumstances) times. It's not as fast as the best and fastest Web browsers around (Opera Mobile being the one that is in every respect faster than PIE; so are server-based solutions like Opera Mini) but is already very good, speed-wise, particularly if you relocate the cache to a fast medium (for example, a RAMdisk; more on this later). This particularly applies to the case of navigating back to a page by using the Back button. Rendering just-visited pages will be done almost instantly, as opposed to previous versions.
Third, a lot of other, new nice additions have been made to PIE. Most important of them is the ability to disable pixel doubling and the introduction of Iframe support in Windows Mobile 6 (WM6 or Crossbow).
Unfortunately, however, it still suffers from some severe problems. The most important of these is the lack of being multi-tabbed; that is, support for browsing the Web in more than one windows (tabs). Furthermore, it still lacks proper (!) JavaScript support (let alone AJAX, which it doesn't support at all).
Note that while, per se, it doesn't support Macromedia (Adobe) Flash and Java applets "out of the box", it’s still the best browser in that it lets for using so-called "plug-ins" that add Flash and Java support. In this regard, it's unmatched - only the latest (8.65) version of Opera Mobile offers the same functionality - and for Flash "only", meaning no support for Java applets at all.
1.2 Opera Mobile (current version: 8.65)
Opera, which is, in many respects (for example, CSS compliance and support for really flawless zoom-in, which is particularly important on high-resolution (for example, UXGA) notebook screens - not even the latest version (version 7) of Internet Explorer is capable of the same), hands down the best browser on the desktop Windows, has been ported to Windows Mobile.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
While the first beta, particularly on WM2003 and WM2003SE, was pretty useless (for example, it received really bad reviews from me - you, therefore, can't say I'm biased towards Opera ), the excellent folks at Opera have fixed almost all of these issues for the first commercial version (8.60) released June 2006 and the rest for the second major version bump (8.65) in April 2007. (I'd like to point out that I've also worked for them as a betatester during the development. That is, you can also thank me for Opera Mobile's being so darn good now ;-) ). Now, Opera Mobile is hands down the best Web browser in terms of pure speed, approach to caching, memory usage and standards compliance.
Note that while the desktop version has long been using the 9.x kernel, the WM port based on the new and even better (for example, it has FULL CSS2 compliance!) 9.x kernel will "only" be released later this year and will only be compatible with WM5 and later.
1.3 Opera Mini (current version: 3.1.7196)
The free, but still very capable Opera Mini, the little brother of the above-introduced Opera Mobile, is unique in that it's a Java midlet. This means it's not a native Windows Mobile application but it requires a midlet manager to run.
If you have a Windows Mobile device with a built-in phone (that is, in the pre-WM6 parlance, a "Phone Edition" device), then, you most probably have a midlet manager on your device, which, with most HTC models (ones that are rebranded by HP - for example, the hw6915 - have a different midlet manager), will be that of Intent. The Intent Midlet Manager is a very capable and nice application you won't want to get rid of. Note that if you have a WM5 Phone Edition (or WM6 "Professional", which means the same) device, you can separately download the Intent Midlet Manager here.
If you can't (because you have a pre-WM65 (Pocket PC 2002 or WM2003(SE)) model or, for some reason (for example, the lack of WM5+ softkey support) don't want to use Intent Midlet Manager, your best choice will be the J9 midlet manager by IBM, of which version 6 is pretty capable and highly recommended.
There are a lot of major differences between the midlet-based Opera Mini and fully-fledged, "native" Web browsers. First, the good.
Opera Mini is free (!) and offers unbeatable advantages over almost all of its competitors. For example, it runs on even memory- and CPU-constrained devices without ever consuming your memory. Just an example: a large(r) Web page can take up Megabytes of the already pretty meager RAM of your WM device. Current WM5 devices have, in general, less than 30 Mbyte and 12M available with models originally having 64M and 32Mbyte of RAM, respectively; 32Mbyte RAM devices inlude the well-known Treo 700w and the HP iPAQ rx1950. This also means you can have dozens (!) of even large Web pages open at the same time, you will still not run into resource problems. You can't do the same with "native" Web browsers - not even with the, in this respect (too) best Web browser, Opera Mobile.
Also, in addition to using little memory to render (and store) your pages on, it also excels at minimizing the communications overhead. The central proxy server Opera Mini uses makes a great job at stripping "unnecessary" contents (HTML page layout, dynamic JavaScript scripts, CSS style sheets etc.) off Web pages; this also results in heavily reduced bandwidth usage, which may be of paramount importance if you either have a slow (say, GPRS only) connection or you need to minimize data usage.
Now, the bad. It certainly lacks a number of very important features; for example, you can't select any text on a Web page and just copy it to the clipboard of your device. Furthermore, should you have a volume slider on your WM phone (earlier WM5 models almost all had; it has been, later, changed to a scroll wheel by HTC), you can't use the excellent tool SmartSKey to scroll a page up/down. Also, while the one column-based rendering mode is very useful particularly on low-resolution (QVGA (240*320) or square-screen (240*240)) devices, the inability to switch to a view more closely modeling the original page layout may become problematic with some kinds of Web pages (for example, the RedHotPawn online chess application or the Web-based Google Maps). It has no access to the standard Web favorites of PIE either. The text / address input method of the Intent Midlet Manager can also be a problem, along with the lack of WM5 softkeys (in this respect, IBM J9 is certainly better). Finally, it has some other, minor problems and shortcomings; for example, the lack of file upload support, which is supported by most of the other "native" browsers.
All in all, I really recommend this browser. For a free one, it's certainly worth a try and/or leaving it on your WM device installed. Also make sure you periodically check back to the homepage of the Windows Mobile-compliant (advanced) version because it's updated very frequently, introducing new features all the time.
Note that, as far as IBM J9 is concerned, it's in the above-linked article that I've explained how Opera Mini should be deployed under it. With the Intent Midlet Manager, it's even easier to deploy the file: you
Download the JAR file (you won't need the JAD file!) from here and transfer it to your PDA
You fire up File Explorer on your PDA and click the just-downloaded JAR file. It'll be auto-deployed to the Intent Midlet Manager.
1.4 NetFront (current version: 3.3; future version with already available demos: 3.4)
NetFront is also a well-known Web browser for the WM platform. While back in the Pocket PC 2002 / WM2003 / WM2003SE days it was the king of all WM browsers, the currently available, non-demo state version of it, 3.3 (released slightly less than a year ago) does pale in comparison to the alternatives in most respects. For example, its built-in Flash support is definitely inferior to that of PIE and Opera Mobile and it's highly unlikely Access, the developer of NetFront, will ever fix these issues. (For example, I've reported on a very bad DST bug in NetFront almost two years ago. Access still hasn't fixed it. No comment.) Furthermore, its JavaScript (and AJAX) support and rendering speed are much weaker / worse than that of Opera Mobile and the list continues.
Fortunately, the forthcoming, WM5+-only version 3.4 has some really decent features (for example, slightly enhanced loading/rendering speed, some brand new & nice features like thumbnail view & quick navigation; drastically enhanced JavaScript compliance), which, depending on when the final, official, commercial version of 3.4 is released, may give NetFront back of the old fame.
For the time being, however, I'd prefer checking out the alternative solutions first. Both Opera Mobile and, particularly, WM5 AKU2+ PIE (preferably with a decent PIE plug-in like the current version of PIEPlus or MultiIE) are much faster and cleaner and, as with Opera Mobile, more standards-compliant. It's only at niche areas that the currently, officially available version of NetFront, that is, 3.3, is better. The currently available demos of the forthcoming 3.4, while technically far superior to 3.3 are not really usable in real-world situations because of the severe demo limitations (10 favorites and two tabs at most, no Flash / Java plug-in etc.) - that is, it can't really be used for serious browsing until 3.4 is finally released, which, knowing how slow Access is to release new versions of their browsers, will take, in my opinion, at least half a year.
Finally, don’t forget to switch to proportional font in [Menu / ] Tools / Browser Setting / Font / Use proportional font – this problem hasn’t been fixed in even the latest 3.4 version.
1.5 Minimo (Mini Mozilla) 0.2
Minimo is another well-known, free browser for the platform. It has recently received a major version bump to 0.2, with greatly enhanced compatibility to some WM5+ models that were pretty slow when running previous versions of the browser. Unfortunately, the new version has also introduced some new bugs; most importantly, the VAST RAM memory usage. I'm pretty sure this will really soon be fixed; for the time being, you won't want to upgrade to version 0.2 unless you can guarantee you have at least 20 Mbytes of free RAM memory before starting Minimo. (Otherwise, it will just crash at either loading itself or loading large(r) pages.) Note that I'll definitely announce when the bug is fixed - just make sure you check out the updates to this Bible from time to time (or, alternatively, subscribe to the thread / article).
Minimo shares the CSS, JavaScript, frame etc. engine with the desktop version. This, in itself, is really cool and means it has excellent support for CSS and JavaScript (AJAX too!). It, however, isn't really feature-packed. While it does support multiple tabs, it doesn't support any kind of Flash / Java plug-ins, it sports no image saving, link copying etc. capabilities. Furthermore, it isn't the fastest Web browser around to load pages - even the latest, 0.2 version (which according to my benchmarks, is about 25% faster than the last 0.1x series Minimo, to load pages) is significantly slower than most other browsers, let alone the at least 3 times faster Opera Mobile. The speed difference is especially visible with pages linking in several sources - then, it might prove even five-six times slower than even PIE!
All in all, while this browser certainly has the potential, it's still not really ready for prime time particularly now that Opera Mobile 8.65 also has excellent support for most Web standards. While Opera Mobile is a commercial product, I think the major speed advantage, the support for Flash, the stability, the support for PIE favorites etc. all make it a much better alternative. If you're an advocate of free and/or open source software, however, make sure you check out the project.
1.6 ThunderHawk 2.10304
ThunderHawk, a decent, fast but pretty outdated browser recommended for QVGA users (but not for VGA or square-screen ones - ThunderHawk doesn't at all support the latter!), hasn't really received any upgrade lately either - except for a minor upgrade targeting Windows Mobile phones with a clamshell or slide-out keyboard (that is, left-handed landscape mode) and some (server-side) AJAX support in 2006. Otherwise, it's still the same browser as was in 2005. This means for example no high-resolution mode on VGA devices (I do NOT recommend this application to VGA users at all - images are too low-res and butt-ugly!), no text selection / copying, no even basic functionalities like image saving or link copying.
Its major strengths are as follows:
without any kind of “One Column”-type modes, it’s capable of displaying even multicolumn tables without problems
the server it uses strips all unnecessary HTML markup from the HTML files it sends, resulting in sometimes major bandwidth usage savings.
its memory consumption and speed is very good
It also has major flaws:
on VGA devices, it still uses QVGA resolution, which is particularly annoying with images/applets
it is only able to display Western characters – no Chinese, no Japanese, no Arabic, no Hebrew, not even East-European characters.
its persistent cookie handling is buggy
it doesn’t have a multi-tabbed mode – that is, you can only browse/load one HTML page a time
its monthly/yearly fee may be a bit on the steep side ($5.95/month or $50/year).
it doesn’t use any kind of local cache, which may result in far higher bandwidth usage than with browsers that have
it can’t use HTTP proxies – that is, you can’t use any further GZIP compression, unlike with all the other browsers (except Minimo). This may also be a big problem – see my bandwith consume-benchmarks here
it has absolutely no features like image saving, link copy, HTML page save; not even page content copying works
it no longer has a free 30-day trial. You need to shell out at least $5.95 (a month's subscription) to be able to give it a test ride.
much as its Java VM (a welcome addition to version 2.1) is pretty capable, it uses a special client/server model that makes a lot of applets very hard to use or even useless. (See for example this article on the Radar applet – using TH, not only map dragging/GUI handling are almost impossible, but also the labels are impossible to read.)
Please see the first version of this Bible for more information on the buggy cookie handling.
1.7 DeepFish
Microsoft's latest, some-days-old technology is pretty promising. It's based on the same principles as Nokia's S60 OSS browser, NetFront 3.4 and Opera's announced 9.x series for Windows Mobile: it lets for dynamically zooming in/out of a certain page section to make it easier-to-read.
You can sign up for the beta HERE; note that you’ll only get on a betatester list to be granted rights only later when Microsoft actually gets able to provide the thousands of would-be betatesters the necessary proxy server throughput capabilities.
As no client-side markup-based rendering takes place with DeepFish, it's vastly different from the two other proxy-based solutions (Opera Mini and Thunderhawk). The latter two render client-side Web markup code and, therefore, have, essentially, much lower bandwidth requirements and better responsiveness than DeepFish. They, however, can't really make use of the other advantages of local Web markup rendering due to the simplicity of both clients; that is, while a decent, fully-fledged Web browser has for example page saving, copy-to-clipboard etc. capabilities, these don't.
Unfortunately, currently, DeepFish not the fastest similar browser in this respect. Both Nokia's OSS and NetFront 3.4 are FAR faster at on-page navigation and zooming in / out. For example, it only takes a fraction of a second to completely zoom out in the latter to the page thumbnail view and, after quickly moving the page outline, it zooms back in also a second. Of course the two browsers use an entirely different architecture (NetFront has a full HTML renderer engine, while DeepFish "only" displays images of pages pre-rendered by the internal DeepFish server); still, usability and speed-wise, NetFront is still much more usable.
Note that DeepFish being really new, under development and lacking even basic support for JavaScript, Flash, AJAX, Java and similar Web technologies, I haven't included it in the comparison chart. Now, DeepFish is no more than a simple, Compact Framework 2-based (this, unfortunately, also has some speed-related consequences) clever image zooming-based client/server solution with minimal client-side tools (highlighting and clicking links). That is, I would have needed to put a "not supported" (-) almost everywhere in the chart regarding DeepFish.
I'll report on any news regarding this question in the future. Also, when DeepFish does mature and does receive additional functionalities common with most other browsing solutions, I'll include it in the chart.
2. PIE plug-ins
So far, I've elaborated on fully-fledged Web browsers not depending on any other Web content rendering engine. There is, however, a second group of WM browsing solutions: applications that enhance the functionality of the already built-in PIE using its engine instead of providing a brand new browser. They are common in that they at least (!) provide multi-window, page, image saving and full screen support; these (not considering the last two under WM5, where PIE has received built-in support for them) are really worthy.
The "let's not throw away the already built-in PIE, but build on it" approach has both advantages and disadvantages. The clear advantage is that PIE itself, particularly as of WM6, is pretty mature, definitely bugfree, dependable and comparatively fast. It's not very easy to write a HTML engine even matching (let alone surpassing) the sheer compatibility and stability of this engine - actually, only the authors or direct porters of already-established Web browser engines (most importantly, Opera and, to a lesser degree, Mozilla) can really compete with the engine, quality-wise, not a start-up developer with a new HTML renderer engine.
The disadvantage is that relying on the PIE engine means having to put up with some of the inherent problems and shortcomings of PIE. For example, not any PIE plug-in is able to provide in-page text search capabilities or some kind of better JavaScript / AJAX / CSS / frame / Iframe support. The same stands for getting rid of pixel doubling on VGA devices on VGA WM devices prior to WM6 (remember that it was only in WM6 that "Use High Resolution" was added to PIE). Finally, a plug-in just can't enhance the inherent characteristics of page loading and memory usage. That is, as they need to rely on the same Web page parser and renderer engine, they can't provide a much faster one.
2.1 PIEPlus 2.2
It was during 2006, with the debut of the brand new 2.x series, that this plug-in was seriously enhanced. The original 1.x series paled in comparison to the, then, definitely better MultiIE (an alternative PIE plug-in) and its only real strength was providing Pocket View (that is, built-in one column mode) for pre-WM2003SE models.
Now, with the new, 2.x series, the situation has radically changed; now, I'd say it's PIEPlus that is the better of the two PIE plug-ins and it's only at few areas (for example, direct GPS and keep-backlight-on support) that MultiIE is decidedly better.
This plug-in offers a lot of goodies: in addition to the standard multitabs, page / image saving, link copying, it allows for in-program scroll mode switching, a lot of advanced URL builder capabilities (macros, domain completion etc), advanced tab history and so on. Furthermore, it's unique in that it offers "Pocket View", a really welcome one column view mode addition for all pre-WM2003SE devices. No other PIE plug-ins are capable of this (all they may offer is support for background usage of an external Web compression / content stripping sevice like Skweezer, with all their problems and shortcomings; for example, the stripping of dynamic contents).
All in all, this should be the first plug-in to check out, should you want to stay with the built-in PIE engine and not long for something inherently better and more advanced (for example, Opera Mobile).
2.2 MultiIE 4 D72
This plug-in hasn't received so many updates as PIEPlus during the 3.x - 4.x major version change; actually, some of its old functionality (for example, viewing image texts, making a given image a Today wallpaper or some of the old button associations) have been taken away in the new series. However, it’s still a very sound and highly recommended alternative, particularly when you look for a browser (or browser plug-in) that disables shutting down the screen backlight while running or when you plan to use your browser in conjunction with your GPS unit to quickly look up location-dependent information on the Web.
It should also be pointed out that some of the inherent problems with the 3.0 version have been fixed; most importantly, the HUGE additional memory usage upon creating a new browser tab. With the 3.0 version, on a VGA device, creating a new tab easily resulted in an additional 2 Mbytes of memory wasted; with the new series, "only" 800-900k is used for each new tab. This is definitely an improvement, which lets open far more parallel tabs even on (more) memory-constrained devices.
Note that I've thoroughly elaborated on the macroing capabilities of MultiIE in the first version of this Bible (links at the start of this article). Please consult the MultiIE section in there for more information - it'll explain a lot and you'll be able to use that information with both the new MultiIE and PIEPlus. As MultiIE severely lacks any kind of documentation, it'll be the only place where you find a very thorough tutorial on all these questions.
2.3 Spb Pocket Plus 3.2.0
Spb Pocket Plus (SPP) is a long-established multipurpose application for the Pocket PC. It not only has a PIE plug-in, but also several other goodies like an excellent (!) Safe Mode (see the Safe Mode Bible for more information), a good (but, in my opinion, not excellent - the comparable iLauncher 3.0, which is also a full set of tools like these - except for a PIE plug-in - has an, in my opinion, better one) Today plug-in, a Close button, a battery meter, ZIP compression support for pre-WM5 devices etc.
In addition to a sound set of all kinds of utilities, it also has a big advantage over almost all the other PIE plug-ins: along with the highly recommended PIEPlus, it uses the least memory overhead upon opening new tabs. While the, in this respect, worst MultiIE uses some 0.6…0.9 Mbytes (depending on whether it’s a QVGA or a VGA device), PIEPlus / SPP "only" consume about half of it. The same stands for the initial memory needs of the three apps: while PIEPlus / SPP only need about 50-100 kbytes of RAM, MultiIE needs about 300-500k. Also, along with PIEPlus, it's the only current application that still supports the Pocket PC 2002 operating system.
Unfortunately, the PIE plug-in module is as simple as was in previous versions (except for it having received the "Open link in a background tab" functionality during the 2.x -> 3.0 version jump). This means it offers no special features at all, particularly not for WM5 users, where image saving and full screen switching is already supported. Actually, it doesn't even have on-screen tabs to let the user quickly (with only one screen tap) switch between Web pages, quickly close them etc.
Also note that, currently, SPP may have compatibility problems with WM6 devices in general. (See the remarks in the chart!)
2.4 Webby 2.6.0.5
This Compact Framework 2-based application has become pretty usable during its maturation. Now that there are some (not many) external plug-ins for it and the initial, major speed problems have (mostly) been fixed, it became a serious contender to the other solutions, particularly if you look for an entirely free solution. (Except for Minimo, everything else is commercial.)
It's a hybrid application meaning it's not strictly a plug-in (unlike PIEPlus, MultiIE and SPP) but more of a front-end for the underlying PIE engine. This, in this case, results in some problems:
It doesn't let for accessing the WM2003SE+ "One column" and the WM6+ "Use High Resolution" menu items of PIE, while all the other PIE plug-ins - except for ftxPBrowser - do. This results in some severe usage restrictions, particularly if you don't want to use Skweezer and similar content stripping / one column-converter services and/or you have a WM6-based VGA device.
It, as the downloaded Web content must go through an additional layer of programming code, is definitely (albeit, as of now, not much) slower at downloading and rendering Web pages than PIE itself. This was a major problem in earlier versions (see my older reviews); now, fortunately, the additional speed hit it introduces is only 20%
It can't add menu items like "Save image", "Save target as", "Open in new tab" to the original link / page / image context menus of PIE; rather, it needs to provide the same functionality through much slower-to-use menus
In addition, while the additional widget plug-in architecture of Webby is pretty nice, it has several related problems; for example, it can't hide for example the tab bar and the address bar plug-ins in full screen mode (which isn't what you will necessarily want), unlike almost all other solutions (except for for example Opera Mobile and its address /icon bar or NetFront and its tab bar). Also, some of the additional widgets are buggy (see my remarks on, for example, the bugs of the Tab bar widget).
However, as has been pointed out, if you don't plan to pay for your Web browser (plug-in) at all, the free (or the registered free) version of Webby can prove pretty useful. I, however, don't see much point in shelling out $20 for the Pro version - for the same amount (or a little more) of money, you can get much better & faster functionality (PIEPlus, Opera Mobile etc.)
3. Not included: ftxPBrowser
While I've (still) reviewed ftxPBrowser in the previous Web Browsing Bible, I don't see the point in doing the same in here as, unfortunately, ftxPBrowser
hasn't received any updates (let alone enhancements) in the meantime and seems to be a pretty much abandoned project
has severe compatibility problems with WM5+ (please see this and this for more information on this).
This means I do NOT recommend it for WM5 / WM6 users at all. If you have a model with an operating system prior to WM5, you may want to give it a try, though.
3.1 Disqualified: Maximus
Maximus, a CF2-based hybrid PIE add-on is very poor and isn't at all recommended. Please see this review for more info.
4. Comparison / feature chart
It's available HERE. It also contains some 360 screenshots, almost all taken on a WM6 VGA HTC Universal (don’t forget to click the links to see them if interested)!
As with all my feature charts (and roundups), I’ve paid special attention to provide you with mini-tutorials when discussing a particular question. For example, when I elaborate on the “One column” mode (see the “One (single) column view?” row in the chart), with, say, Minimo, I also show how you can actually switch to this mode by showing a screenshot of the menu item taking you there. This means the chart contains hundreds of small, but, in cases, very useful quick tips & mini-tutorials you won’t find anywhere else. All in a very compact form: just imagine how much I would have ended up having to type upon trying to convey the SAME deal of information in a non-tabular form – yeah, dozens if not hundreds of kilobytes.
Of course, I have tried to be as verbose and clear as possible when explaining the different test cases. I’ve also paid special effort to linking in my previous, related articles on the different tests I’ve conducted. For example, when I provide a link along with the Internationalization support group, it means you may want to follow the link to find out what the tests in this group are all about.
4.1 Explanation for the Comparison / feature chart
(Note that all browsers support SSL (secure connections); therefore, I haven’t included this in the chart, as opposed to the previous version of this Bible (at that time, Minimo still didn't support SSL). Note that Opera Mini has only recently, with the 3.x series, received support for SSL.)
Platform compliance? group: in here, I've elaborated on the operating system compliance of each and every browser. I've grouped together the platforms that, compliance-wise, behave the same way. That is, a WM2003-compatible program will surely run on WM2003SE; a WM5-compatible program on WM6. I've also noted the exceptions or some problems; for example, with SPP. Also noted is the lack of support for newly introduced PIE features like One column in WM2003SE, Save images / Full Screen in WM5 and Use High Resolution in WM6 VGA.
It's no news older platforms are all phased out - and this, unfortunately, already means completely losing support for relatively new operating system versions like WM2003SE. NetFront 3.4, Minimo 0.2 and DeepFish are all WM5+-only; so will be the forthcoming Opera 9. However, older versions of these browsers (except for, of course, DeepFish) do/did support WM2003(SE); in the chart, I've mentioned the actual version number that still did this. Support for the now-ancient Pocket PC 2002 operating system is even more scarce; of the new releases, only PIEPlus and SPP support it. Finally, non-ARM-based Pocket PC (2000) devices are completely abandoned.
Screen group: in here, I've elaborated on the different screen resolutions (QVGA, VGA, square) and orientations (Portrait and the two Landscape modes). Fortunately (except for the complete lack of support for square screens in Thunderhawk), current Pocket PC browsers are all VGA (including native (non-SE) VGA modes) and Landscape-compliant, where the latter also includes left-hand landscape modes used on WM models with built-in slide-out / clamshell keyboards.
Screen estate utilization group: everything related to how browsers are able to make use of the available screen estate.
Full screen mode?: can you switch to full-screen mode, hiding the taskbar at the top and the command bar at the bottom? I’ve also noted the way to switch back to normal mode; it’s, for example, a little icon as with all the three (real) PIE plug-ins, which is the best and least space-consuming.
As can clearly be seen, Opera Mobile, Minimo and NetFront all display the tab bar (and, with Opera Mobile, the address/icon bar) even in full screen mode. This is certainly a drawback.
Address bar hiding?: in pre-WM5 PIE's (as with several other browsers), you could hide the address bar to free up some screen estate. In here, I've scrutinized whether you can do the same in the reviewed browsers. Note that Opera Mobile displays the combined address bar / command bar even in Full Screen mode, which should be addressed in a later version.
Scrollbar (may be) hidden in full screen mode?: better browsers and browser plug-ins may be configured to hide the horizontal/vertical scrollbars in full screen mode. Unfortunately, only MultiIE and PIEPlus support this; Opera Mobile, Minimo, NetFront and PIE (without either PIEPlus or MultiIE) don't.
Context menus group: while I've also dedicated separate rows to elaborating on mostly context menu-based functionality like opening a link in a new tab (instead of the current one), saving an image or copying a link target address to the clipboard, I've also chosen to collect screenshots and a quick list of the additional, new context menu items available with all the three different entities in a Web page (not counting in special entities like Flash animations, Java applets or frames; with the first two, there are no context menus; the latter is scrutinized in the Frames group): images, links and generally non-image/non-link content.
Advanced address bar features (macros, completion) group: this section lists the different types of macros and address bar (auto)completion. The rows and screenshots in this section are pretty self-explanatory; therefore, I don't explain them in here.
Rendering modes group: the screen resolution of a Windows Mobile device is inherently smaller than those of desktop / notebook computers. Even the largest WM screens (800*480 in, for example, the new Toshiba G900) are still smaller than the XGA (1024*768) screens used in even basic notebook models, let alone higher-resolution ones (for example, I'm writing this article on my UXGA (1600*1200) Thinkpad.) Low-resolution WM devices with either a QVGA or a square screen are even worse.
With these low-resolution screens, it's pretty understandable a Web page can't be correctly rendered in its original layout. A layout designed for a horizontal resolution of at least 800 pixels just can't be correctly rendered on a screen with a width of 240 pixels. This results in (mainly) three approaches:
render the page as is, in its original layout - that is, make the user scroll horizontally. This is the worst approach as you will end up having to scroll horizontally to read each and every row.
while trying to keep the original horizontal layout, try to resize every horizontal page entity so that they fit in the screen horizontally. This approach, in general, works OK on VGA devices, particularly when used in Landscape orientation (that is, with 640 active pixels, even when you subtract the width of the vertical scrollbar). On the other hand, with QVGA screens (and particularly with square ones with a meager 240 pixels), this approach wont really work because, in some cases, each column will only have space for 3-4 letters at most. (See the examples in the first row of the group showing this in practice; or, the NetFront Just-fit example showing a QVGA screenshot in the earlier version of the Web Browsing Bible!)
finally, try to render all cells in a row of a table or all frames vertically; that is, one cell or one frame a row.
Note that there may be combinations of the latter two approaches; NetFront's Smart-fit rendering is a perfect example of this (using the most recommended Full Rendering mode). It, when it notices that there simply are too many for example table cells in a row, makes sure it renders all of them vertically. When, however, it notices somewhere else on the same page there isn’t enough screen estate, it will render the cells in separate rows. The PPCMag test example, used throughout the entire chart for testing, is a perfect example of this. At the top of the page, where there are only two text input fields and some text, these are shown in the same row (unlike with "real" One column solutions). However, with much more information / text in a row (the case with the body chart itself), most of the cells are aligned vertically. This approach unifies the good sides of both approaches and should be implemented by at least the Opera Mobile folks as, say, a fourth way of content display.
The first two rows in this group compare the applications' ability to fit the contents of a Web page (horizontally) on the screen and to render the page in the One column mode, if possible.
Fit-to-screen (tested with the PPCMag test)?:
As can clearly be seen, PIE has always delivered pretty bad results, unlike with all the comparable and fit-to-screen-capable alternatives (except for Minimo, where SSR doesn't always work). Both NetFront's "Just-fit rendering" and Opera Mobile's "Default" mode are far better at really crunching the horizontal contents of a Web page to the available screen estate and, in most of the cases, are perfectly usable on especially VGA devices.
Minimo's SSR mode (whish is enabled by default) is a different animal - it doesn't work with many sites (see the RedHotPawn example). When it does work, however, it also delivers good results.
Opera Mini doesn't have a comparable rendering mode at all (as it's solely using an One column mode). Finally, Thunderhawk renders the page using the original layout, which is pretty much OK in most cases.
One (single) column view?:
As can be seen, the reviewed apps use vastly different approaches. The best approach is, without doubt, that of NetFront for the reasons outlined above. It's closely followed by all native One column-capable browsers: PIE in WM2003SE+, Opera Mobile (particularly now that, with the brand new, 8.65 version, the old bug with the limited horizontal column width has been fixed) and Opera Mini (incidentally, the latter doesn't have other rendering modes at all).
As has been pointed out, it's only with WM2003SE and later WM operating system versions that the built-in PIE supports the One Column mode. In earlier operating system versions, should you really want to have One column rendering and still want to stick with PIE (while, of course, Opera Mobile is far better a choice on WM2003), you will want to take a closer look at PIEPlus, the only PIE plug-in to force the incoming Web content into one column.
Note that you can achieve the same effect with ANY browser using external one-columnizer services like Skweezer, MobileLeap and the like. However, they may result in some problems (for example, because they also get rid of JavaScript code); therefore, you may still want to go for something else.
Rendering mode (does it show the start of the document even when it’s not entirely downloaded?): this test elaborates on how the given browser loads a new document: does it start rendering it only some 2-3 seconds before fully finishing the download (that is, does the user face an empty screen for, say, 90% of the download), or, does it try to render the page as soon as possible?
As can clearly be seen, there are two types of browsers: one set of them (PIE, Opera Mobile) will start rendering the page as soon as possible, while some wait until the download & parsing is almost entirely done (Minimo and the proxy server-based solutions). NetFront is a strange animal because in the normal Full Rendering mode it sometimes delivered very good (starting to render right at the beginning), while, at other times, pretty bad (starting to render only later) results.
Note that NetFront also offers a "Rapid-Render" mode, which guarantees the content will be rendered during page fetching. I can't at all recommend this mode, however, because of the HUGE time overhead, which is particularly an issue in the new, 3.4 version, where the difference in time needed for page fetching can easily be fivefold. Furthermore, the rendered contents you're presented aren't the final ones; they will only be presented later, after a really distracting full screen clear. This may be pretty annoying for the user because he or she may even forget where he/she was and/or will have to scroll around a lot to find it.
Multiple page operation (multitabs) group: in this group, I've elaborated on how the application handles multiple pages; is it, for example, possible to open a link in a background page for background download, and, then, get notified when it's downloaded. All this in order to avoid having to waste time on waiting for the page to be downloaded, which is especially important with slow connections.
Feedback on page loading events (sound effects / bringing to the foreground)?: A decent browser should notify the user when a page has completely been downloaded and rendered in the background. For example, the desktop Opera browser turns the color of the text on the tab where download has ended to blue, which is very easy to notice, even with disabled sounds. In here, I've listed how the tested browsers behave in this respect. Unfortunately, the Windows Mobile version of Opera doesn't do the same trick as the desktop one (and not any sound notification either). This is the case with all the other browsers too. Actually, it's only PIEPlus and MultiIE that lets for configuring what should happen in these cases. Kudos to their developers!
Opening links in…-support, particularly as opening something in a background tab is concerned: in here, I've listed whether it's possible to open a link in a new and, particularly, in a background new tab in order to avoid having to manually switch back to the current one to continue reading it while the requested page is loading in the background.
As can clearly be seen, some browsers don't let for background link opening at all; unfortunately, Opera Mobile, NetFront and Minimo also belong to this group. Actually, it's only the three "real" PIE plug-ins that offer background link opening capabilities.
Max. number of tabs open at a time?: die-hard Web browser users may want to prefer having as many pages open as possible. Most browsers and PIE plug-ins do let the user do so; the most important exception is NetFront, which only lets for opening up to five tabs. This is far from perfect and you'll run into this restriction pretty easily if you often open a link in a new tab.
Something should also be emphasized. The Windows Mobile operating system, as of now (the WindowsCE 5.2-based WM6; it's only the brand new WindowsCE 6 and the forthcoming WM version based on it that (will) have got rid of this restriction), doesn't let for more concurrent processes than 32. Most of the reviewed applications (except for, for example, Opera Mini), however, create a separate process for each tab. This means, depending on the operating system used and the number of other programs you run, in general, you can't have more than 20-28 tabs opened with a browser before these start to be terminated (which, in cases, may result in terminating all the browser processes at once). Again, this restriction doesn't apply to Opera Mini - with it, I had 30 pages opened several times without any problems.
Note that, as both opening new tabs (at least with PIE plug-ins; with non-PIE-based browsers, the memory consumption in these cases isn't at all bad) and rendering Web pages (which is an issue with several Web browsers; most importantly, with PIE) may be memory-intensive operations, it's highly possible you fill up your dynamic RAM program memory much faster than reaching the process limit of the operating system. With the least memory-hungry application, Opera Mobile, I've had no problems in browsing some 27-28 tabs at a time, however - that is, you can make a good use of your dynamic memory very easily.
Tabs constantly on the screen, their taking up screen estate etc. group: while the previous group didn't concentrate on the visual representations of the multiple browser document windows, this one does. In here, I elaborate on whether you can alter the tabs' size (and their taking up valuable screen estate), whether they're displayed in full screen mode, whether you can configure the system to open the new tabs next to the current one, or, strictly at the end of the tab list; whether the tabs have context menus (in this respect, Minimo is clearly the best) and, finally, whether the tabs can easily be closed with, say, only one screen tap.
Misc. group: the tests in this group speak for themselves. Please make sure you consult the screenshots, should you still not get the point what they are all about. I only elaborate on the Access to standard PIE favorites? group, which elaborates on whether the given browser is able to access the PIE favorites for either reading or writing, or both.
As can clearly be seen, while the traditional file system representation of favorites is very simple to handle, only three browsers have support for it: Thunderhawk, Opera Mobile and NetFront; neither Minimo nor Opera Mini have support for them. (The latter is, of course, understandable, taken the restricted “sandbox” midlets are provided, file access-wise.) Furthermore, Opera Mobile isn’t able to create PIE-compliant favorites (not even when you create these favorites explicitly in the Internet Explorer Favorites folder); this means favorites added in Opera Mobile will not be visible to other browsers and you can’t synchronize them back to your desktop computer(s) either.
Note that the WM operating system also stores favorites in the Registry; both NetFront and Opera Mobile were able to read these Registry-based favorites.
Standards compliance groups: in the five groups here, I examine the following four areas (and a miscellaneous area with some "not suitable for bigger groups" tests):
JavaScript, scripting, Java (Part I) : in here, I've run several tests to find out the compatibility of all the browsers with some well-known pages having very strong and complicated scripting. As can clearly be seen, Opera Mobile and Minimo have by far the best JavaScript and AJAX support. PIE has always had a very bad JavaScript support and, even as of WM6, non-existing AJAX support. (Frankly, I don't understand why Microsoft states PIE in WM5 AKU3 / WM6 is AJAX-compliant, when it just isn't. Its JavaScript compliance isn't a tad better than in older versions either.) NetFront had mediocre JavaScript support in 3.3 and good in 3.4; as far as its AJAX compliance is concerned, 3.4 was indeed a BIG step ahead (albeit it's still worse than that of Minimo or Opera Mobile).
Finally, it's in here that I also elaborate on the Java applet compliance of the Web browsers. Unfortunately, Minimo and the two Operas have absolutely no Java support. This isn't that big a problem, however, because very few sites do actively use Java applets - it's mostly Flash that everything is based on (see Flash compatibility later).
Thunderhawk and NetFront both have their custom Java support, which can't be swapped to something else. With PIE, however, you have some choices when choosing a JVM: CrEme and the no longer sold / supported JEODE, which, back in 2001-2003, was shipped on iPAQ CD's. Of the two, I'd prefer CrEme because of the vastly superior speed and generally better compliance. The reader is kindly referred to my other, related articles (just look for "CrEme" in my articles) for more information on CrEme.
HTML Frames: these test concentrate on the frame support of the Web browsers. You may have already heard of PIE's only supporting few parallel or embedded frames and absolutely not supporting so-called "Iframes". In here, I elaborate on all these issues. If you know a bit about HTML and would you find out how I've did the tests, don't forget to check out the HTML test pages I've created for these tests: I've linked in them all. They're pretty instructive.
As can clearly be seen, Opera Mobile has the best frame support when it comes to the maximal number of parallel / embedded frames. Its only problem is the lack of "go to a frame" functionality (to maximize a given frame to the entire screen), which, otherwise, would be REALLY important, particularly when you really wouldn't need the contents of the other frames. The Opera folks will want to address this issue. PIE, on the other hand, is at the other end of the spectrum: its frame support is the worst of all, frame number-wise.
Finally, some really good news for PIE freaks: in WM6, Iframes support has finally been added. It's not really flawless (see my comments and the screenshot), but, at least, it's already there.
Internationalization support (Part IV): please see this article for a complete description of what this all means.
Finally, the fifth subgroup, Misc, dives into a lot of disjunctive compatibility areas: file uploading, Flash, YouTube etc. Please do read the linked-in articles for more info if interested - here, I won't waste any time on telling the same stuff again. As can clearly be seen, Opera Mobile is the best of all in this group, particularly YouTube video-wise.
Speed, dynamic RAM memory usage benchmarks group: on Windows Mobile devices with, typically, heavily restricted CPU and memory resources, it’s very important Web browsers don’t tax neither the CPU nor the memory much. That is, they load the requested Web page as quickly as possible and try to radically reduce their memory consumption. As there are really radically differences between the different browsers, a Web browsing-related roundup MUST elaborate on these quantitive results.
Overall rendering speed: PPCMag test loading speed: in this test, I’ve measured how much time it did take to completely download and render the linked test page. Note that I’ve repeated the tests in different rendering modes to see what their effect on the overall rendering speed is. In general, I’ve made the tests on two current devices: the WM5 VGA 624 MHz Dell Axim x51v (running the A12 ROM) and the WM6 520 MHz VGA HTC Universal. In every case, I’ve noted which of the two I’ve measured a result on (the x51v is slightly faster, which is also reflected in the results).
Overall memory usage: program itself with a blank page (important particularly for HP iPAQ rx1950 / Palm Treo 700w users with ~11Mbytes of free RAM at most). Note that the PIE plug-ins show additional RAM usage, in addition to the "base" PIE RAM usage. : in this test, I’ve measured the memory usage of the applications without displaying any Web page (as displaying pages may dramatically increase the memory usage.) Note that, as with the next benchmarks, I’ve done separate QVGA and VGA tests; I used the HTC Wizard running WM5 as the QVGA test device. The reason for this is pretty simple: on VGA devices, Web browsers have the tendency of taking up more memory. As can be seen, Opera Mini and PIE are the most memory-friendly, followed by Thunderhawk and, then, Opera Mobile. Then follow the other browsers: NetFront and, finally, Minimo.
Note that, with PIE plug-ins (except for the hybrid Webby), I’ve measured the additional memory usage. That is, don’t think Spb Pocket Plus / PIEPlus only require 56k / 90k RAM memory; that is, that they greatly reduce memory load. It’s the additional memory usage, added to memory usage the “base” PIE.
An opened, new tab: unfortunately, not only the Web browsers themselves take up memory, but also the individual windows you open in them. This is especially true of PIE plug-ins, which, in effect, need to load a brand new instance of PIE into memory. This is why they, in general, consume at least an order of magnitude more memory (per window) than non-plugin-based, multiwindow-capable solutions (NetFront, Minimo, Opera Mobile, Opera Mini).
PPCMag test memory consumption: totally independent of the above-mentioned cases (how much memory the program itself / an additional tab take) is the memory taken up by the in-memory representation by actual Web pages you visit. This, in general, in cases, may be even an order of magnitude larger than the original size of the page – for example, (in this respect) worse browsers (most importantly, PIE) may take 7-8 Mbytes of the meager RAM to load a 600 kbyte Web page with some icons in there.
In this test, I’ve measured the memory consumption of all the tested browsers upon loading the above-introduced, 590 kbyte-big PPCMag test page. As can clearly be seen , there may be even two orders of magnitude differences in the results: while Opera Mini takes very little memory, PIE (the, in this respect, worst-behaving browser) takes between 7.5 and 9Mbytes.
Network connectivity group: in here, I’ve elaborated on generic network connectivity questions / issues.
Proxy support? If it does support proxies, does it require the proxy settings entered locally, or, does it get from the system-wide Connectivity framework?: Is the given app able to use proxy servers?
Proxy servers can be very handy in a lot of respects. Please see this article (also linked from this PPCMag article) on the usage of proxy servers. Also, you may want to read this article for more information on configuring proxies on the PPC/switching between them.
Opera Mobile and Minimo both support locally-set proxy servers.
As you can see, PIE, starting with Pocket PC 2002, uses the system-level proxy server setting. PIE plug-ins also use them as they have access to all the PIE resources. NetFront is also able to do the same, but you can also supply a different proxy server to it locally (which is the preferred and easiest solution in most cases). Thunderhawk and Minimo have no proxy support at all.
Proxy-based anonymity?:
If you use proxies, you can also anonymously surf the Web (please see this and this article on anonymity). This is why PIE (with all its plug-ins), Minimo, Opera Mobile and NetFront are preferred for anonymous surfing. TH, while it doesn’t support proxies, doesn’t pass anything client-related (no IP, no ThunderHawk username) to the HTTP server, so, it can safely be used for anonymous Web surfing too. Opera Mini, unfortunately, does pass the client IP in an extended HTTP header.
Does use the PPC2k2+ Connections framework to diff. between The Internet/Work connections?: You may have already run into the The Internet/Work distinction, which effectively plagues the life of a lot of people. PIE is based on this paradigm; this is why you run into a lot of ‘can’t connect’ messages because of just using the opposite type of connection of what’s needed.
Non-PIE browsers aren’t based on this framework, which is a big plus with them, at least for people that don’t understand the The Internet/Work distinction ( it’s not an easy stuff; furthermore, it’s not really documented either).
Bandwidth reduction: GZIP/Compress support? Does it really work?: HTTP browsers that support GZIP compression (please read this article on this subject) and support working through proxies (the case of Toonel – more on this later) may deliver a big win in bandwidth usage.
Toonel-compatibility?: Toonel is a great and, even better, free online HTTP compression service, a great friend of everybody not having unliminted (or very fast) Internet access. It requires explicit proxy support (and manual configuration) in the Web browser. In this row, I’ve noted the compliance of PPC Web browsers with Toonel. As can be seen, all of the "big" titles support Toonel because of the proxy support. It's only client-server solutions like Opera Mini, Thunderhawk (and DeepFish) that don't support Toonel.
Saving, downloading group:
Saving the current (Web) page (also see this)? (Note that it can even be a, say, as textual "rendered" CAB file too!): This shows if the browser is able to explicitly save Web pages. As can be seen, most of them do, Minimo, the two Operas and Thunderhawk being the exceptions. Some of the browsers (NetFront, PIEPlus, MultiIE) can even make a full save, downloading all the resources as the desktop IE in File/Save As - see the default Web Page, complete option in the Save as type: drop-down list.
Please note that the inability to explicitly save pages shouldn’t be a showstopper: you can get the Web pages from the cache of browsers that have local caches. It requires some manual work and searching, though. Consult the Download Bible for more information.
Save link directly to file, w/o opening? (""Save Target As...") (also see this): should you save something without actually peeking into it, you will want to look for browsers that do support this kind of functionality. (Please, as with the other rows in this group, do consult the Download Bible for more information on this subject - it's way more complicated than it seems!)
Co-working with HandyGet : Currently, HandyGet is the best Windows Mobile downloader tool/accelerator. In here, I’ve elaborated on whether it’s able to automatically “capture” the binary URL’s clicked in the browsers in order to download the file inside itself.
File download (NOT "Save Link Target"!)?: without relying on features like the above-mentioned "Save Link Target", is it possible to download files if they are offered for download (that is, if they are of binary content); is it possible to select a destination to store the downloaded file at. (Again, check the Download Bible for what this implies.)
Caching; cache benchmarks group: most Web browsers use local file stores called “caches” to quickly speed up transfers and lower data usage. These caches, as they are stored in the file system, may result in a variety of problems, particularly when you visit pages with more than a handful linked resources (for example, images). In these cases, the sometimes vastly reduced file creation speed of non-RAM (read: flash ROM) media – for example, the built-in, default storage in all WM5+ devices. Please also see the related article What do you need to know about optimizing storage card speed? for more info on the speed issues caused by trying to write dozens of files to a flash ROM-based file system.
In here, in addition to elaborating on whether its size is settable, I’ve also elaborated (see Relocatable?) on whether the cache can be relocated to a storage card / RAMdisk etc. Note that, should you relocate it to an even slower medium (as are most of today’s non-high-end memory cards), the page loading times may become even worse with browsers (particularly sensitive to this problem is PIE), particularly when there are many files to store in the cache. In these cases, you will REALLY want to consider disabling caching entirely or using an area, RAMdisk, in the fast dynamic RAM (the program memory) to store the files. RAMdisks, however, have their share of problems (see the linked RAMdisk article).
I’ve benchmarked all the caching-enabled applications in separate scenarios. First, I’ve benchmarked them in my WM6 HTC Universal, using its built-in storage memory for the cache. Second, using a RAMdisk; third, using a VERY slow-to-write to, cheap SanDisk 1Gbyte SD card. As can be seen, with the latter card, PIE’s results are much worse than in the default or the RAMdisk one. Note that the results starting with + mean additional time needed for caching – in addition to the non-cached or the default case.
In Explicit cache navigation?, I’ve elaborated on whether it’s possible to examine the contents of the cache from inside the browser itself, as is the case with NetFront.
Finally, in Offline mode: Highlighting favorites present in cache (like on desktop browsers?) Loading cached pages without a connection? , I've elaborated on whether the browser supports showing what's available in the cache and what not. In the Favorites list, highlighting available pages is a pretty nice feature of all PIE’s except for WM5 (where, for some reason, it was removed). The second part of the test concerns cases of browsing without an internet connection, just from the file system cache. As can clearly be seen, this is not always possible.
Images group: in here, I've elaborated on image saving, (alternative) image text inquiring and wallpaper setting capabilities. As the latter (wallpaper setting) no longer works in any current Web browser or plug-in, you'll want to consult my well-known (Please read the "Today Wallpaper Bible" (alternatives: iPAQ HQ, AximSite, PPC Magazine, FirstLoox, BrightHand)) for more information on reusing downloaded / saved images as Today wallpapers, should you ever want to reuse an image on the Web as your wallpaper.
Copy/paste support group: I've elaborated on whether it's possible to directly copy a link to the clipboard and whether the browser supports arbitrary text selection from the given page.
As far as link copying is concerned, should it be missing with a particular Web browser / PIE plug-in, you can still do the same with just clicking the link and, then, when it's displayed in the Address bar, just stopping the loading (if you don't need to see it) of the page and copying the address from the Address bar to the clipboard.
As far as the second (text copying) is conerned, all browsers support it, except for Thunderhawk and Opera Mini (and the forthcoming DeepFish).
Hardware buttons not related to scrolling group: here, I've elaborated on hardware button assignment capabilities, which is REALLY useful and supported by some Web browsers (and PIE plug-ins). Assigned buttons can make operation (for example, the Back button) much easier, particularly if you don't like / can't use the touchscreen on a non-Smartphone (non-WM Standard) device. I've also elaborated on the WM5+ softkey support, which, traditionally, hasn’t been the strongest point of some browsers.
Scrolling group: you may want to prefer scrolling down/up the page (OR, select a link) using hardware keys (or the redefined volume slider / scroll wheel / jog dial, when available) instead of using the scrollbar (or, screen dragging) on the touch screen (if your device has a touchscreen at all). In these cases, you will most probably want to know what scrolling capabilities the given browser supports and whether it's possible to override / change them.
In a nutshell, there are two traditional ways of scrolling: the "scroll one page at a time when you press the Up/Down arrows" ("page" scrolling) and "highlight the next link above/below/on the left/on the right when you press a directional key and scroll the screen contents when there's no visible link in the given direction" ("link" scrolling). In addition, some browsers also offer the capability for "line" scrolling, which scrolls the screen line by line.
Traditionally, PIE in operating systems prior to WM5 utilized page scrolling and, starting with WM5, link scrolling by default. The switch to the new paradigm took place to make it possible for non-touchscreen-enabled smartphones to select (click) links to follow (and to let for one-handed operation even with touchscreen-enabled devices). However, the change to link scrolling wasn't really welcome by many users because it meant, sometimes, multiple keypresses to scroll down the screen contents.
There are a lot of different solutions to the problem, all of them explained / shown example screenshots of in the chart. Of them, hybrid solutions are the best and most usable. This is particularly true if you occasionally would like to use your otherwise touchscreen-enabled WM device in one-handed mode. Then, while still having the ability to both quickly scroll up/down the contents ("page" scroll), you also have the chance to do some link scrolling. This can happen with either the same keys (not) used with press-and-hold also used for page scrolling, or with different hardware facilities (either a scrolling wheel/jog dial or a redefined volume slider) to do the link scrolling.
As far as the first group (doing page/link scrolling with the same hardware facilities) is concerned, NetFront has an interesting scrolling behavior; with the brand new, 3.4 version of NetFront, you can fine-tune how the Up / Down keys behave; then, if you, otherwise, use link scrolling with the D-pad, you can still instruct NetFront to scroll through several pages up / down when you long-press (press and hold) the Up / Down key. (Note that the default behavior is immediately switching to the PagePilot mode for quick navigation.)
Also the scrolling model of Webby is of special interest: when you press the Down key, a page scroll will take; when you press Up, line scrolling. With this, you can still quickly scroll through a document without having to suffer from the disadvantages of link-only scrolling and, when you do need to access a link, you can scroll down one page and, then, gradually up (and left/right when there are several links in row) to get to a link. This is a very clever approach more closely modeling user behavior.
Note that you are very lucky if you have a WM5 device with a real volume slider (for example, a HTC Universal, Wizard etc.); then, you can use one of the best, free tool meant for these kinds of devices, SmartSKey. With a redefined volume slider, you will always have page up/down scrolling in PIE (including all its plug-ins), (the new) Opera Mobile and NetFront (but, unfortunately, not in the other browsers); then, you can safely leave the D-pad in the default Line scrolling mode.
User-Agent group: the ability to redefine the so-called "User-Agent" can prove very useful because many Web sites check this information and act differently on mobile and desktop Web browsers. The ability to redefine this information can be very important because
many sites may refuse to provide (usable) content for a mobile browser introducing itself a mobile browser to the server, even when the client would be able to meaningfully render the contents. Just an example: while Opera Mobile's JavaScript and Iframe support is so darn good that it’s even able to make use of the very useful Gmail address autocomplete, Gmail switches to PDA view NOT offering autocomplete when it sees a mobile browser (including, by default, Opera Mobile too).
many other sites rely on for example authentication requiring a browser to identify itself as a desktop, while they aren't really using the advanced scripting or ActiveX capabilities of them.
In these both cases, redefining the User-Agent can prove very useful.
Note that you won't always want to redefine the User-Agent. There are many Web sites that, upon recognizing a mobile browser, provide mobile-/bandwidth-friendlier content. Just a few examples: the Smartphone & Pocket PC Magazine blogs, Pocket PC Thoughts, AximSite, FirstLoox etc. With these sites, it can prove very useful to be able to dynamically switch the browser identification (User-Agent) to the default (mobile) setting to get the mobile content.
Built-in browser identification change : in here, I've elaborated on whether the given browser / plug-in is able to change the User-Agent from inside the application.
On-the-fly external browser identification change visible without PIE restart in tabs opened after change? (Everything is +, also showing that all reviewed PIE plug-ins load a full copy of PIE into memory for each and every tab, unlike the old ftxPBrowser, which does require a full restart.) : As has already been pointed out, most PIE-based apps (except for ftxPBrowser) load an almost new copy of PIE into memory when a new browser tab is opened. This, on the other hand, also means that registry changes, which PIE only notices when it’s started, will also be visible after opening a new window (because PIE also reloads the registry), without even exiting PIE.
This can be of tremendous help. Let’s assume you prefer visiting a banking site pretending to be desktop browser (because the page just doesn’t let you in say, non-desktop-IE browsers), while you would like to access the, say, the PPCMag blog or Pocket PC Thoughts pretending to be a Pocket PC client so that you receive lightweight-formatted content. And, you would prefer doing this at the same time: in one window you browse online banking pages, in another one you browse the Pocket PC-optimized pages of the above-mentioned sites. It’s indeed possible if you always remember which tabs you opened after toggling the User-Agent.
This is really great and informative. I've been wondering if I made the right decision (IEM WM6 until Minimo is good enough) and now I think I did. Thanks!
Original article updated at http://www.pocketpcmag.com/blogs/index.php?blog=3&p=1828&more=1&c=1&tb=1&pb=1 - sorry, I don't have the time to repost it in <10k chunks here.
r3bel said:
This is really great and informative. I've been wondering if I made the right decision (IEM WM6 until Minimo is good enough) and now I think I did. Thanks!
Click to expand...
Click to collapse
You are welcome
UPDATE (04/05/2007): Added a new row on Address bar (history / deletion / autocomplete), with a lot of screenshots; other minor changes in the chart.
In addition to yesterday's cleaning up the English & additional proofreading and today's adding a new row on the Address Bar history (deletion) / autocompletion, I've slightly modified the Opera Mobile-related information in the chart of the article, based on ResearchWizard's excellent feedback. (BTW, his Opera Mobile guide is just excellent and really worth checking out (alternative, direct link here)).
BTW, many have asked why there's neither "Verdict" nor "Most recommended" section in the Bible. The answer is very simple: while I, personally, consider Opera Mobile 8.65 the best browser closely followed by the WM6 (or, at least, WM5 AKU2+ - previous versions were 50% slower to load pages and, therefore, I wouldn't really be able to return to using them) IEM equipped with PIEPlus 2.2 if the bad JavaScript / non-existing AJAX support and the relatively high memory usage aren't a problem.
However, as you may have drastically different requirements, the above may not be the right solution for you. For example, you can ONLY use free software because, for example, you need the cheapest solution for enterprise-wide deployment, which means you'll need to cast a glance at Webby, Minimo or, probably the best free alternative, Opera Mini. Or, alternatively, you want to keep the original page layout on your low-resolution QVGA model; then, the first browser you should check out is Thunderhawk (not taking DeepFish into account).
That is, there was a reason I didn't (and still don't) provide a quick recommendation. There are a LOT of factors you need to consider when selecting your browser of your choice. You WILL want to thoroughly examine the feature / comparison chart, thoroughly compare each feature and consider whether the lack of a given feature is a showstopper for you or not. Providing a some-sentence-recommendation like ""go for Minimo if you need a free and, therefore, easily mass-deployable browser and memory consumption isn't an issue", "go for Opera Mini if you need minimal memory consumption, speed and also being free" or "stay with PIE if you don't need strong JavaScript / AJAX / CSS support and multitabs but want a free, dependable browser"" would have been an oversimplification.
I felt it useless to try to even replicate the information available in the comparison / feature chart in a Verdict section - there's simply too much information, I would have ended up pages on this "simple" subject. This is why I’ve left it out altogether – you’ll need to consult the chart so that you can make an educated, informed decision..
Updated the chart with Thunderhawk-related information. This means there are no question marks in the Thunderhawk-specific column any more. I've also provided several screenshots of Thunderhawk in action. Thanks to the Bitstream folks for providing me access to their service!
BTW, the article has been frontpaged by Pocket PC Thoughts in the meantime.
I had a really good read on this, very detail, and very useful information.
Thanks.
I’ve just posted a brand new Radar article, with a lot of new screenshots, to http://forum.xda-developers.com/showthread.php?p=1209974
PPCT frontpage; Just Another Mobile Monday frontpage
Finally, I can not stress and emphasize enough: if you have a specific need but lack the time to fully scrutinize the chart, use in-page searching (Ctrl-F) to quickly find the compatibility information you need. For example, if you want to know Flash, AJAX or JavaScript compliance, just use the word in question (for example "Flash") as the search expression and you'll really quickly find out which chart row discusses the given question.
Thanks to HowardForums user diadjika, I had the opportunity to thoroughly test Picsel’s famous Web (and document) browser for Windows Mobile and accordingly update the Windows Mobile Web Browser Bible (which, BTW, has just been frontpaged at AximSite).
The browser is WM5+ only (no WM2003(SE) support, sorry) and is NOT available for download officially; it’s shipped with some Windows Mobile models as is the case on other mobile platforms (for example, Palm OS).
It’s a direct (non central server-based) Web browser with REALLY excellent dynamic zooming / panning capabilities (regarding them, it’s the best of all Windows Mobile browsers) and built-in PDF, MS Excel / MS Word / MS PowerPoint and text reader. That is, it’s pretty much understandable why Palm OS users praise it so much.
Unfortunately, it also has its shortcomings; for example, the lack of a multi-tabbed architecture (as is the case with DeepFish / Thunderhawk and, of course, PIE without a third-party add-on), lack of file up/download capabilities, total lack of local caching, Ajax / Flash / Java / decent JavaScript support etc. In addition, sometimes it’s just painfully slow to download stuff, particularly with Yahoo Mail and for example the AximSite forums. That is, if you can’t stand its lack of speed (with some pages – with other pages, it has no problems at all), you’ll want to look elsewhere.
Make sure you thoroughly check out the brand new column in the comparison chart of the Windows Mobile Web Browser Bible for more information to see how it compares to the alternate browsers. The chart contains a LOT of screenshots showing the Picsel browser in action.
Verdict
While many (particularly Palm) people love the Picsel browser (and it has a lot of loyal Windows Mobile followers; for example, the excellent vijay555 at XDA-Developers), I don't think it's as good as the leading Windows Mobile Web browsers, particularly Opera Mobile 8.65 and the built-in PIE in WM5 AKU2+ / WM6 with a decent plug-in (like PIEPlus 2.2). It has VERY bad JavaScript and non-existent AJAX support, has no real "Fit to Screen" mode (the One Column mode is, in cases, too restrictive, particularly if you'd like to see not very wide charts and constantly zooming/panning is sometimes very awkward), sometimes very slow (see Yahoo Mail) and only offers one tab.
On the other hand, the excellent stylus-based dragging / zooming / gesture support of the browser, which is no doubt currently the BEST on Windows Mobile, should also be implemented by the alternate browsers, most importantly Opera Mobile (which has just, with version 8.65, implemented dragging) and PIEPlus. Are you listening, Web browser & PIE plug-in authors?
Some additional menu screenshots (see the chart for more!)
Normal / Reflowed layout
Bookmark view
Folder view (2)

My W3C speech on Web browsing + a full explanation

As has been announced some weeks ago, I had a W3C speech a week ago devoted to Web browsing on mobile devices. You can find the (English) slides HERE. (Sorry, some of the example screenshots are in Finnish. This, however, doesn’t have a detrimental effect on the overall understandability of the material.) In order to understand the slides, I’ve also decided to comment on all of them so that the entire Windows Mobile, Symbian and BlackBerry mobile community can benefit from my speech – in written form. Finally, note that, albeit this article is over 80kchars long, it in no way can provide a FULL, absolutely thorough overview of the Web browsing scene on these platforms. That is, if you don’t understand something, don’t despair: in my referenced, previous articles, you can, in most cases, find a very thorough dissemination of the subject. Just an example: in this article, I only devote some 2kchars to the subject of downloading files while my original, devoted article, along with its (recent) updates, amount to over 100 kchars.
I also provide in-line screenshots in this article so that you know what I'm speaking about without constantly switching to PowerPoint; however, to see the original document at its full (and copy/pasteable) glory and resolution, you'll need the PPT file.
(Sorry for the comparatively bad quality – captured from the 1024*768 M-JPEG video(!) recording of my Canon 960IS camera.)
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
(no comments needed)
(just some self-promotion )
(Promoting my employer and me. Incidentally, should you want to support my employer - and, through that, me - with a, say, contract for some kind of development or any kind of IT consultation [if you work for a company that would like to outsource some kind of consultation or quality (!!!!), in-depth research], feel free to contact me and I’ll make sure my employer contacts you back. Even a, say, US$ 50,000 project would be welcome. I’ve been a generic – not just mobility! – IT consultant and lecturer [for example, for Sun’s Java training courses], but am also well versed in traditional Electric Engineering stuff like telecommunications and signal processing; see for example my forthcoming Digital TV / Telecommunications Bible for more info on the latter. That is, I’m in no way a mobility-only type of professional. In e-mail [werner AT pocketpcmag PISTE com, where change AT to @ and PISTE to . (dot)], I’m also ready to provide you with a more thorough list of past IT consultation, education etc. projects. It’s me that would be working on these contacts; together with an English editor to get the English right. I only expect serious inquiries. Please, if you like my articles and would like to see similar articles come out in the future too [it’s mostly because I have a lot of free time and a really cool environment at work that I am allowed to work on articles even during work hours], look around at your company to see whether there’s some way of outsourcing your, say, consultation, education or research needs. International contracts [on which I/we’ve worked several times] are welcome.)
OK, let’s get to business. Given that in a 45-minute speech it’s entirely impossible to give the listeners a complete, detailed picture of the problems, the compatibility issues of each and every browser for all the three operating systems, I’ve added references to all slides (whenever applicable). To quickly look up the referenced article / Bible, just change “1327” in http://www.pocketpcmag.com/blogs/index.php?p=1327 to the number given after „Ref:“
Also, you’ll need to be aware of three articles not (always) linked as references. The two Windows Mobile Web Browsing Bibles have the reference number 1828 and 2084 for Pocket PC’s and MS Smartphones, respectively. They, therefore, translate to real URL’s http://www.pocketpcmag.com/blogs/index.php?p=1828 and http://www.pocketpcmag.com/blogs/index.php?p=2084 . My Opera Mini 4.1 (Ref: 2571) review, which is currently not discussed in either of the Web Browsing Bibles, is worth checking out for the latest information on this excellent browser. Also, you can find all my Web browsing articles in the Web Browsers category on my blog at http://www.pocketpcmag.com/blogs/index.php?blog=3&cat=61
There are several established mobile operating systems (platforms). In this slide, I quickly list them. Of course, this is just a very high-level overview of the operating systems; it’s later that I elaborate on them more thoroughly; one by one.
Web browsing-wise, probably the most advanced platform is Windows Mobile (WM for short), which itself has basically two, starting with WM5, converging subplatforms: touchscreen-enabled Pocket PC’s (PPC for short) and touchscreen-less MS Smartphones. In WM6 parlance, they’ve been renamed to Windows Mobile 6 Professional / Classic and Windows Mobile 6 Standard, respectively. I’ve also listed Handheld PC’s for completeness (and as an introduction to the slide explaining the evolution of the built-in Web browser pre-installed on WindowsCE devices in the past 11.5 years), which are a dying breed.
Symbian is another, very important, consumer-focussed mobile operating system. The most featureful browser for its most popular breed, Nokia’s Series 60 (S60), is the Nokia S60 Web. They are, in addition, also able to run Opera Mini and other MIDlet-based browsers. It also used to have an Opera Mobile port, as was the case with some Linux-based models like the Sharp Zaurus.
RIM's BlackBerry is a very important business (and, with the advent of more consumer-friendly models like the Curve and Pearl and the, particularly multimedia-wise, really enhanced 4.5/4.6) operating system. Its Web browser has traditionally pretty bad. With operating system version 4.5/4.6, however, it has undergone a major facelift and received a lot of new features. For example, now, searching for text in pages works. This highly useful feature is only supported by very few other browsers – for example, it’s only been introduced to the two Opera browsers this year.
The hugely popular Apple iPhone runs Safari. It’s really a decent browser. The only real disadvantage is the complete lack of, for example, Flash (Lite) support. As YouTube (one of the major usage areas of Flash as of today) has a dedicated YouTube client, this isn’t that big a problem. Note that, unlike with the first three operating systems (and like all the following ones), I don’t elaborate on this operating system in the rest of my speech. Currently, iPhone doesn’t have Java MIDlet support; therefore, you won’t be able to run Opera Mini on it. Java, however, will be - hopefully - soon added.
Linux, after the, unfortunately, discontinued, but, technically, really-really excellent Sharp Zaurus series, seems to have been reborn: Nokia's Web Tablets and the non-Nokia phones based on the LiMo foundation’s operating systems are gaining popularity. Note that, as far as the old Zaurii are concerned, it had both Opera Mobile and NetFront (NF for short) preinstalled.
Finally, the once market-leading Palm OS is pretty much dead now; this is why I don’t elaborate on its (compared to what is available on Windows Mobile, iPhone and Symbian, not very advanced) browsers like the, with newer versions being NetFront-based, Blazer at all. Unfortunately, the only MIDlet manager (an environment to run Java-based applications like the Opera Mini browser) for the operating system is IBM’s now-discontinued J9, is really buggy and crashes frequently; this means you can’t even use Opera Mini on the platform.
First, let’s take a closer look at Windows Mobile and the core operating system, WindowsCE, paying special attention to how the built-in browser was enhanced during the 11.5 years of maturation.
With WindowsCE 1.0 (Handheld PC), which was released in early 1997 and used on several models like the HP 300/320LX, the Philips Velo etc, has only a really basic (no frames) but already online (non-offline) browser. (We’ll soon see why I emphasize it being online.)
The next two major releases of the operating system, WindowsCE 2.0 and 2.11 (released early 1998 and 1999, respectively) has gone in two directions to cater for people wanting a really palm-sized and, to keep the size down, keyboard-less version of the, compared to the, then, like-hot-cakes-selling Palm handhelds, not really popular WindowsCE models. The new form factor was named Palm-size PC (PsPC). Several WindowsCE hardware manufacturers released PsPC’s; for example, Casio released the Cassiopeia two-digit series (E10 etc.); Philips released the Nino, HP the Jornada 430 which was even featured in a James Bond movie etc. These devices only offered offline browsing; that is, if you had any kind of Internet connection on them (via, say, an infrared connection to a mobile phone), you still couldn’t directly access any Web pages. Instead, you needed to use the desktop based ActiveSync tool (earlier called as WindowsCE Services) to fetch the pages for you and synchronize it to your handheld for offline viewing.
It was only in the “traditional” Handheld PC handhelds, for example, the HP 360LX/620/680 (with the OS version 2.11, called Handheld PC Pros) that still had online access capabilities with a hugely enhanced and updated Web browser much better than the one in WinCE version 1.0.
The market’s answer to the 2.x-series handhelds was pretty much lukewarm. This also resulted in several manufacturers like Philips leaving the scene for ever. It was not before mid-2000, with the release of WindowsCE 3.0 and its hugely popular Pocket PC platform (a heavily enhanced version of the PsPC platform, fixing a lot of issues like the lack of online browsing support) that anyone would say WindowsCE-based handhelds would seriously endanger the market penetration of Palm handhelds and BlackBerry messengers.
WindowsCE 3.0, which was released in May 2000, was the first really successful MS mobile op. system. As with the 2.x series, two operating system subversions were based on it: the, technically, much more advanced (for example, its built-in browser was already capable of finding text in pages, which the Pocket PC version isn’t even now capable of) Handheld PC 2000 (HP 720/728 etc.) using the traditional clamshell form and the descendants of Palm-size PC’s, now, renamed to Pocket PC’s. The latter received an online Web client again; at the time, it was clearly less capable than that of the Handheld PC 2000 OS. Ironically, the latter operating system has practically died out pretty soon and now (its descendants) is used in niche models only.
Let’s go on with the Pocket PC operating system and its built-in browser, Pocket Internet Explorer (PIE). This was, incidentally, renamed to Internet Explorer Mobile (IEM) in 2005 with WM5.
In late 2001, the first version of the PPC OS (also called Pocket PC 2000) was updated to PPC2k2 (2002). While it did have certain advantages over the old operating system, Web browsing-wise it was more of a step back in speed / memory handling because it was incapable of rendering larger (about 150+ kbytes) pages – unlike its predecessors and successors.
In Spring 2003, Windows Mobile 2003 (WM2003 for short; notice the operating system name change!) followed with a much-much better built-in browser with, among other things, CSS support added. (Previous browsers didn’t at all support CS sheets.) Then, in Summer 2004, WM2003 Second Edition (WM2003SE) followed suit, with the native One Column mode being the most important enhancement (on which I’ll elaborate later), Web browsing-wise.
In Autumn 2005, WM5 arrived, also renaming PIE to IEM. It contained a heavily bugfixed IEM engine – some CSS contructs no longer result in the prompt termination of the PIE session, unlike in WM2003(SE). It was also the first PIE (IEM) version to support file uploading – a painful omission from previous PIE versions.
WM5 (and subsequent operating system releases) was also unique in that internal updates during the lifespan of the operating system were well-documented and referred to, easily checkable by an end user, via “AKU” versions. Just some major enhancements: while the initial WM5 IEM browser was pretty very slow to load Web pages, AKU 2 has fixed this almost completely. AKU3.5 introduced a High-Resolution switch for high-resolution VGA devices – another long-demanded feature.
In Spring 2007, WM6 followed suit, with no real improvements except the support for IFrames. Finally, this (2008) Spring, WM6.1 was announced with no real improvements either; a fully revised and enhanced version (a full port of the desktop IE6 engine) is promised later this (2008) year.
Speaking of the built-in browser, it still is pretty much incapable when compared to alternative browsers like Opera Mobile or even Mini. This is why there exist several so-called “plug-ins” or, with some less popular solutions, “shells” to enhance its functionality by adding, for example, multi-document (multitab) support. The most important plug-ins are as of today: Spb Pocket Plus, PIEPlus and MultiIE.
In the rest of my presentation, I’ll return to the compatibility issues of IEM several times; for the time being, let’s check out the other, alternative browsers.
In addition to PIE / IEM, there are several third-party browsers on Windows Mobile. Let’s start with standalone, native Windows Mobile ones (native means you don’t need to run them in a specific environment like a MIDlet manager). The first group is non-streaming too, meaning no excess data fees over a non-flatrate connection / inability to use over non-3+G connections.
* Opera Mobile: probably the most important Web browser. It’s, more or less, based on a direct kernel port of the desktop engine, meaning excellent compliance with core Web standards. Note that the currently, officially available version, 8.65, is still based on the 8.x core; it’s only the latest, 9.x-series Opera Mobile that have, finally, switched to the 9.x core and delivers full compliance with all current standards. While it’s a fairly new browser (the first beta was released in early 2006), it’s taken the Windows Mobile Web browsing scene by storm and is the preferred Web browser of many.
* NetFront is a long-established browser. Unfortunately, while it does have its merits, the development seem to have slowed down and several major bugs haven’t been fixed for years. (For example, you still need to rely on the definitely inferior built-in Flash interpreter instead of having the ability to use external, official and much better-quality Flash plug-ins.) I really hope Access, the developer of NetFront, finally starts to make some serious enhancements to this browser.
* Thuderhawk: this is another long-established browser. The classic (native Windows Mobile) client has received no real improvements in the last about two or three years (except for adding Java applet support back in 2006) and it seems it’s completely abandoned as the company is switching to a MIDlet-based and, therefore, truly multiplatform (not only WinMo) solution.
* Minimo, which is an unofficial and, now, abandoned Mozilla Firefox-port. Unfortunately, I can’t really recommend this browser – its speed, performance and memory consumption is pretty bad when compared to most of the alternatives. Note that it has nothing to do with the real, official Windows Mobile Firefox port announced some months ago.
* Picsel’s browser is an OEM-only one and, therefore, can’t be acquired (legally) if it isn’t included in your factory ROM. It’s pretty slow and is incompatible with even basic Web standards. Nevertheless, some people still like it.
* Maximus: it’s a really poor and in no way recommended browser.
Streaming-based but still native browsers follow. The most important of them is SkyFire which, currently, only works in the 3G networks of the U.S. As I’m in Europe, I can’t really give it a thorough ride at the moment. Another, similar (but, based on the raving user reports on SkyFire, speed- and usability-wise, really inferior) solution was Microsoft’s DeepFish, which has been discontinued in the meantime. Also note that there are other, streaming-based, dedicated mobile solutions like DataWind’s PocketSurfer 2.
Finally, let’s elaborate a bit on MIDlet-based browsers. Their biggest advantage is the compatibility with all other mobile platforms, including even “dumb” feature phones (but excluding BREW-only dumbphones used in some American networks). This will even include the iPhone as soon as Sun (and Apple) gets their MIDlet manager, the environment you can run MIDlets in, ready. Their biggest disadvantages are
1. the somewhat reduced speed. In practice, however, you won’t really notice this; the only real difference is the download speed when you use the in-process download manager, as opposed to using the system-level Web browser to download files. As you will want to prefer the latter, this isn’t an issue.
2. the lesser integration with the operating system. For example, you can’t copy arbitrary text from Web pages. This can be done in a very awkward way with Opera Mini 4.1: save the page to a file and inspect the saved file (containing the Web page in a textual, albeit non-HTML form) with a copy-capable file viewer.
Another major issue is the inability to make the browser the default one for the entire system – at least for non-Windows Mobile operating systems. On the latter, thanks to me and two other developers, this is already possible, making your life much easier: you can now just click links in a, say, e-mail and Opera Mini (or, alternatively, any other Java MIDlet-based Web browser) opens the given page.
Of the MIDlet-based (non-native) browsers, it’s Opera Mini that is the most important. Now, as of version 4.1 and all its new goodies (like file upload and page saving), along with our direct invocation tools, it’s a serious alternative to fully-fledged, non-Java-based browsers.
Some other MIDlet-based browsers include TeaShark and UCWEB. The brand new version of Thunderhawk (TH for short) is also Java-based but is strictly OEM only and isn’t available for the general public.
BlackBerry from RIM, as has already been pointed out, is mostly a business “push mail” platform, only recently opening its gates for the consumer wanting more multimedia and camera. Officially, it’s still at OS version 4.2 / 4.3; the new version, 4.5 / 4.6, is slated to be released in a few months. In the meantime, you will really want to check out the (largely unofficial) betas as they offer a lot of goodies seriously enhancing the usability, user- and, through the new fontsets, eye-friendliness of the platform.
In the two screenshots at the bottom of the slide, you can see how the old, 4.2 OS (on the left) rendered the first few entries in my Opera Mini favorites list and how the same is done under 4.5 (on the right). As can clearly be seen, under 4.5, much more contents can be displayed on the screen and the fonts are much better-looking and readable.
As far as Symbian is concerned, there used to be several subversions of Nokia’s Symbian. (Here, I don’t elaborate on Sony-Ericsson’s handsets.) Of them, S60 is the surviving one and the once-common S80 and S90 versions are both dead. A major breakthorugh, touchscreen, will be added this or next year and Nokia is promising an iPhone killer, Nokia Cube.
S60’s later versions (namely, ones that represent the 3rd generation of S60, S60 3rd, and come with Feature Pack 1 (FP1) or [in the future] higher), have an excellent built-in Web browser, Nokia S60 Web. It’s based on WebKit, an excellent core to build Web browsers on. It also supports Flash Lite 2 and 3; the latter has been delivered in firmware updates (v21 for the N95) and not as standalone downloads. Flash Lite 3 is much better to play back YouTube / other videos than the full Flash 7 on Windows Mobile.
On the screenshot on the right, you can see one of its major features, the minimap, in action. It helps in positioning on a page quite fast and is, now, widely copied by other browsers like NetFront 3.4+.
Now that we have had a bird’s view overview of what’s available on the three platforms (and, as far as Java/MIDlet-capable phones are concerned, - including, sooner or later, the iPhone - all of the other), let’s take a closer look at the issues a mobile Web browser can be confronted when browsing pages originally targeted at desktop (and not resource-restricted, dumbed-down mobile) browser users.
First, you need to consider architectural restrictions, the (comparatively) small amount of RAM (dynamic) memory (10...90 Mbytes on higher-end handsets; (much) lower on feature phones) being one of the biggest problem.
While you can, generally, build up the in-memory representation of even several kilobyte-long Web pages using less than 10 Mbytes, having restricted RAM severely restricts the handset’s ability to store multiple Web pages in-memory for quick access without having to re-fetch (re-download) them. Note that dynamic memory consumption-wise, I really recommend my thorough RAM usage tests in the Web Browsing Bible.
Different Web browsers certainly have vastly different memory needs; this is why, for example, Opera Mini 4.1 is able to keep up to 30 pages in memory even on devices with little RAM. Opera Mobile consumes about an order of magnitude more memory, but is still about two two three times better than IEM, NetFront or Minimo.
The CPU efficiency (a 624 MHz Intel / Marvell XScale is equivalent of a max. 200-300 MHz Pentium) can also be an issue, particularly if you provide dynamic content. While Java Script and Ajax (if it’s compatible at all) run pretty OK, the case isn’t necessarily the same with embedded Flash content, particularly on Windows Mobile platform, where the current, official Flash 7 plug-in is pretty slow. (NetFront’s own Flash interpreter being even worse.) As a rule of thumb, you should use Flash Lite 2 or 3 instead if you want flawless, fast execution. (Currently, Flash Lite 3 is supported by Symbian only and Windows Mobile is slated to introduce support only later.)
On mobile devices, cache reading / writing can also be about an order (or even more) of magnitude slower than on a desktop / notebook hard disk (1-2 as opposed to 20-40 Mbyte/s being typical). This means far higher page loading times if the particular browser employs a bad caching algorithm. (I’ve also very thoroughly elaborated on all these issues in the Bible; the reader is referred to it for more info.)
Multitab browsers may also be affected by the process number restrictions under pre-Windows Mobile 7 (that is, all current) operating systems. This will mostly result in issues with multitab browsers spawning an entirely new process for each and every tab (all IEM plug-ins work this way); that is, not with, say, Opera Mini.
Finally, "from stratch" browsers (that is, browsers that aren‘t direct ports of any established desktop Web browsers; some examples are NetFront, Thunderhawk, UCWeb etc.) generally suffer from severe bugs / errors on even the HTTP protocol level, let alone higher-level HTML / CSS bugs.
Let us still elaborate on the question of what a mobile browser can be used for. As has already been pointed out, their biggest advantage on all mobile platforms is the fact that you aren’t restricted to specially formatted PDA/handset-only pages like WAP pages and you can access full pages initially meant for desktop users. This makes it possible for you to access orders of magnitude more pages than some 5-6 years ago with feature (dumb) phones’ only able to access WAP pages.
However, as has already been explained in the previous slide, you need to be avare of several possible problem areas when accessing an initially desktop-optimized page.
* First, >500k HTMLs (for example pages generated by Snitz Forums 2000 or even YouTube) may result in a severe slowdown or even crashes on the client; under Windows Mobile, particularly under the PPC2k2 operating system, which, as has already been explained, only allows for rendering max. 100-120k HTML pages without crashing
* As has already been explained, under IEM, the memory usage is about an order of magnitude more than the original size of HTML. With alternate browsers (particularly with Opera Mini and, to a lesser degree, Opera Mobile) this isn’t an issue.
* (Desktop) ActiveX controls are not supported, not even on Windows Mobile because it’s not an x86 architecture and, therefore, can’t run native x86 code.
* Some browsers (IEM and, particularly, Thunderhawk and Picsel) have very weak JavaScript support
* Unfortunately, Java applets (login, authentication) are only supported by custom third-party JVMs only. What is more, it’s only available on Windows Mobile – that is, there’s no applet support at all on Symbian / BB. On Windows Mobile, applet support is pretty restricted and is only compatible with up to JDK1.4 (unless you use Thunderhawk). There's no official support from Sun on these three platforms either, unlike on iPhone.
* I’ve already mentioned the Flash incompatibility and problems and the less important HTTP/HTML problems, bugs and restrictions.
On slide 8, I’ve already elaborated on the different networking models used by Web browsers, as far as client-middle tier server streaming-based vs. standard, middle-tier-less browsers are concerned. A nonstandard setup can be vastly different from the pretty much bandwidth-hungry streaming-based solution, however. On this slide, I further elaborate on this distinction.
Most online (as opposed to offline; see for example AvantGo, Mobipocket Reader or iSilo offline web downloading and ActiveSync-based syncing to the handset) browsers use direct connections.There are, however, clients that do have a (sometimes simplified) client-side textual (!) renderer component – as opposed to traditional streaming clients (SkyFire, DeepFish and specialized hardware like PocketSurfer 2) – don’t consume much data. On the contrary: one of the design goals of these clients was to vastly reduce data usage, which is of paramount importance with non-flat rate connections - like those of Canadian mobile operators - and make them usable even over super-expensive, typically, 3...5 Mbyte/month BlackBerry data plans. That is, they work in exactly the opposite way as data-hungry apps like SkyFire and deliver considerable data saving even when compared to accessing the same Web pages with a standalone client.
The most important of these client/server browsers, making use of (pretty much) transparent proxies, are Opera Mini (and most of? all? the other MIDlet-based browsers) and Thunderhawk.
These solutions have some drawbacks:
* possible eavesdropping (definitely not the case with Opera; as far as some new, “noname” Chinese browser companies are concerned, however, many believe that the opposite is true; as a rule of thumb, never ever enter any credit card info in any of these new and pretty much unknown browsers)
* they are not flexible enough – there’s no way to use other proxies like the highly useful header rewriter proxies to allow for, say, asking for nationalized versions of pages (more on this later)
* sometimes introduce a definite delay because the (sometimes overburdened) middle-tier server has to process the source pages themselves. With Opera Mini, the delay, typically, ranges from 2 to 30 seconds – that is, sometimes it’s on the verge of acceptability.
* Some incompatibility issues with some sites; for example, the current Opera Mini 4.1 is not compatible with the “Quote” button in vBulletin version 3.6.8 currently used at, say, forum.xda-developers.com.
Some of the pros (much less data overhead) have already been mentioned; on top of that, what you gain is also anonymity. That is, your real IP is hidden – the Web page you access sees Opera’s middle-tier server as the client, not your own IP. Note that your IP is told to the Web server but in an extended HTTP request header, which few of these servers log.
Now, let’s turn our attention to IEM, that is, the browser coming with built into the Windows Mobile operating system. As has already been explained, it has pretty weak and, with standard Ajax, plain non-existing Ajax/JavaScript support. Its CSS support is equally bad. It doesn’t support the multidocument model (which was introduced in IE7 on the desktop) support without 3rd party so-called “plug-ins”. It’s also pretty much limited in that it has no link target / current page saving capabilities (which are pretty much essential).
The same used to apply to image saving in operating system versions prior to WM5. Also, it has severe restrictions like absolutely no IFrame support in pre-WM6 versions and only supports displaying 12 (in WM6) and 10 (in pre-WM6) frames. In this regard (too) alternative, commercial browsers fare far better.
Its stability used to be pretty bad in pre-WM5 times too: it frequently crashed because of certain CSS constructs. I’ve found and published several such CSS constructs back then. This is, fortunately, no longer the case in WM5+.
The two screenshots show how the mobile version of the PPCMag blog and the desktop version of YLE’s (Finnish Broadcasting Company) main page is displayed on a high-resolution VGA device.
Historically, on high-res Windows Mobile models, IEM had the “pixel doubling” problem, meaning images were still rendered as low-res, with double their size. This was fixed in WM5 AKU 3.5 (in early 2007), which lets the users switch between “High-resolution” and the default standard mode. This, however, didn’t really help external applications making use of the IEM rendering engine to display HTML-formatted contents like CHM readers – they still render images with pixel doubling (and, unfortunately, charts too) on high-resolution devices.
Incidentally, when used as a plug-in, there is another source of problem. If you don’t close HTML tags right after the (last) word like in <i>foo </i>bar (as opposed to <i>foo</i> bar), then, the two (formatted and the next) words will be rendered without a space in between them. In the two screenshots presented in the article (a low-res QVGA and a high-res VGA one), I show the results of this “bad-formatted” construct. Note that in the expression “fox jumps over a lazy dog”, ‘fox jumps’ is rendered as one word only because its HTML source was like this: “<b>fox </b>jumps over a lazy dog” and not the recommended “<b>fox</b> jumps over a lazy dog”.
Let’s turn our attention to NetFront, a well-known commercial browser for Windows Mobile. While it’s a bit expensive ($30), it offers an excellent browsing experience – except for some (rather major) problems and bugs. For example, it has built-in Flash support, which is, unfortunately, weaker than that of Adobe / Macromedia used by both IEM and Opera Mobile (it has compatibility issues and severe CPU usage problems). It supports SVG (which is very commonly used in Japan’s 3G content networks) and also has a Java VM to run applets. The latter, unfortunately, is definitely weaker than that of CrEme, the best JVM available for Windows Mobile and, in cases (where there isn’t much animation / graphics involved), even the Java support of the traditional, non-MIDlet-based Thunderhawk. It supports multitabs but their number is, unfortunately, maximized (to five) – as opposed to IEM plug-ins, Minimo or the Operas. I just can’t understand the rationale for this restriction; after all, on a modern 128 Mbyte RAM device, dozens of Web pages can be stored in RAM for quick access / swith. It also has minimap support and, which is very important for many iPhone fans, iPhone-like acceleration when dragging the screen contents by a finger / the stylus.
It has, as of version 3.4 and 3.5 (not NOT previous versions!), has pretty good Ajax/ JavaScript/ CSS support and its rendering engine is definitely better than that of IEM.
The recent releases are as follows: 3.3 (Summer 2006; inferior); 3.4 (Fall 2007): OEM only; currently: 3.5 Technical Previews. This, unfortunately, means you can only get the outdated and (compared to later 3.4 and current 3.5 versions) pretty much incapable 3.3 if you plan to go for this browser. Unfortunately, the currently available 3.5 Technical Previews versions are pretty much limited: no more favorites than 10; no Java / Flash support; no more tabs than 2. In this regard, Opera Mobile and most IEM plug-ins with their 30-day unlimited trial is much better. I hope the NetFront developers consider this and unlock all the features of future Technical Previews, only leaving a timebomb in rendering the browser useless after a certain date. (Noone will set their clocks back – and suffer from the consequences – just to be able to run NetFront to save $30.)
Now, let’s take a deeper look at Minimo, the free and, unfortunately, discontinued (cancelled), unofficial Firefox port. Note that the already-announced official Firefox will be later released for Windows Mobile; currently, no release date is known.
It comes in two versions: 0.16 (for pre-WM5 devices) and 0.20 (for WM5+ only). It’s plain useless on some models because of speed problems and other bugs. On the ones that it doesn’t have model-specific problems, however, is a semi-decent alternative if you really want a free browser other than Opera Mini.
Being based on the Firefox engine, it has excellent scripting (including Ajax) and CSS support. Not as good as Opera Mobile 9.xx, though.
Now comes without doubt (as of version 9.xx) the best, fastest and most powerful standalone Web browser, Opera Mobile. It has excellent JS / Ajax support, almost 100% compatibility with all Web standards, particularly with version 9.33; it’s very fast at everything (loading pages, downloading files etc.), supports the standard Adobe / Macromedia Flash plug-in (unlike NetFront, which forces the user to rely on the built-in and definitely inferior Flash engine) and lets for opening any number of tabs, as opposed to NetFront or IEM without a plug-in. It (as of version 9.xx – but, unfortunately, not the currently commercially available 8.65) also has some other goodies like finding text in pages, which is not available in any IEM-based solutions, not even commercial ones.
Currently, it’s available in two versions: the official (8.65) and the preview (9.33 / 9.5), for both PPC’s and Smartphones. The latter, 9.xx-series has without doubt the best standards compliance of all browsers for Windows Mobile.
Opera Mini, as of version 4.1, has become a really-really decent alternative to other Web browsers, particularly if you need a free solution. As it’s a MIDlet, it’s compatible with almost every phone out there – even feature phones. This means you get exactly the same menus, the same shortcuts on, say, your wife’s low-end feature phone and your smartphone.
It requires a separate environment, a MIDlet manager, to run. I’ve elaborated on the different MIDlet managers available for Windows Mobile in the MIDlet Bible, which you definitely should read if you want to get introduced to the wonderful world of MIDlets. (Note that you won’t necessarily need to read it if your only aim is to be able to install and use Opera Mini 4.1; then, all you’ll need to do is reading my 4.1 deployment and usage tutorial.)
As of the current (4.1beta) version, it offers even file upload, address autocompletion and page saving capabilities. Full page view is also supported (which has been added in version 4.0), retaining the full layout of the original page - as opposed to the one-column view. Incidentally, it’s this that you can see in the above screenshot too.
Its only problem is the lack of arbitrary text copying from Web pages. This could easily be fixed as is done in Russian Opera Mod (an unofficial and, unfortunately, illegal modification of the original Opera Mini) – feeding the textual page contents to a text input area, where it can already be copied to the clipboard if the particular MIDlet manager allows for this (all of them do on all the three reviewed mobile platforms; the only exception is the discontinued and outdated TAO Intent MIDlet manager on Windows Mobile).
As it’s a proxy-based solution, it has far less data usage; however, it can’t access local files (files in the file system) and the additional processing can take some time (typically, between 5 and 30 secs).
Thanks to extensive hacking, direct invocation has also been implemented (originally by me), which greatly enhances its usability on Windows Mobile because it lets for being directly invoked when you click a link in an e-mail or Office document. This isn’t as important on Symbian and BlackBerry because it’s far easier to copy / paste e-mail links in these operating systems (when you step over a link, it’ll be highlighted at once; then, you can copy it to the clipboard at once [as opposed to the, in this regard, much slower and more awkward Windows Mobile]; pasting to Opera Mini’s address input field is equally easy and quick), should you want to avoid using their built-in, respective browsers (for example in order to keep data usage down.)
Finally, still on the subject of Symbian and BlackBerry: while all public builds of version 4.0 frequently (about once a day) crashed on these platforms, I haven’t ever encountered any crashes with 4.1. That is, you won’t ever need to remove and reinsert the battery in order to reset your handsets.
Thuderhawk has a long history on Pocket PC’s. (It also had a MS Smartphone-compliant version, but only for low-res, 176*220 screens, and a QVGA version has never been released for this platform.) Unfortunately, it also seems it’s no longer worked upon as the developer has entirely switched to a MIDlet-based solution to directly compete with Opera Mini. (Which is more than hard as Opera Mini is really-really good.)
Thuderhawk’s biggest advantage has always been it being based on its own fontset (BitStream is also a font designer company), which makes original-layout, full page rendering possible even on 320-wide (QVGA) screens by using special, narrow, but perfectly readable fonts not otherwise available under Windows Mobile. Note that IEM can use similar fonts to look pretty much the same condensed as is explained HERE; the lower right screenshot shows exactly this, while the upper one shows a typical forum page rendered on a 320-wide screen without any need to do any horizontal scrolling.
Unfortunately, being based on a custom fontset means Thunderhawk only supports Western characters; meaning no support for most Eastern European or oriental languages. With Eastern-European, non-cyrillic languages like Polish, Romanian, Hungarian, Czech, Slovakian, Slovenian etc. that use alphabets pretty close to Western languages, this can be somewhat fixed by converting their special, Unicode-only characters to 8859-1 on the server side; with fully Unicode languages, on the other hand, this can’t be done.
Thunderhawk has no support for hi-res ((W)VGA) screens (it displays contents at QVGA effective resolution); doesn’t let for any kind of page / link target saving at all and doesn’t even support copying to the clipboard from Web pages. It doesn‘t use client-side web page / image caching at all (meaning, at times, it may result in far bigger data usage than most of the alternatives); it is only able to download files to built-in storage (not to storage cards or other, alternative media); it has absolutely no support for file upload etc.
Microsoft Deepfish should also be mentioned, which was more of a pilot project slightly more than a year ago to see how server-side content rendering with plain image-based client-server communication works. It wasn’t anything to write home about: because of the client’s being based on the (comparatively) slow Compact Framework and the middle tier server’s being overloaded, it was pretty slow in real use. It’s been discontinued in the meantime. It’s still not known whether it’ll be reused in future Microsoft browsers – for example, in the IE6 port slated for later this year.
Now, let’s take a look at the IEM plug-ins, which greatly extend the functionality (but, alas, not the Web standard compliance / conformance) of IEM.
These plug-ins greatly extend IEM’s capabilities: they add multitab (multiple document) support, resource (page / link target / image) saving, User-Agent GUI-based setting; they let for using hardware buttons for much easier navigation / function access, address bar macros, altering the way the document is scrolled by D-pad etc.; some of them even have GPS-based, location-dependent services.)
* PIEPlus is probably the best and most featureful (resource saving, support for hardware button reassignment etc.). For pre-WM2003SE users (“One Column” was only introduced in WM2003SE), it has a unique feature not offered by other PIE plug-ins: the Pocket View one-column view
* MultiIE is also a decent IEM plug-in; albeit, it’s in no way better than PIEPlus any more (unlike in the past). Basically, it has a similar feature set as PIEPlus.
ftxPBrowser: this PIE plug-in (or, more precisely, a shell), in pre-WM5 times, used to be highly recommended. As it’s mostly incompatible with WM5+, it’s not recommended any more.
Webby, another shell (not a real plug-in), is .NET Compact Framework-based and is, therefore, a bit on the slow side. However, it’s become better and better over time and offers for example extensions like Mozilla for for example ad filtering. It doesn’t let for accessing some of the features of the underlying IEM; for example, it has no One Column mode.
The brand-new Touch Browser, which tries to mimic Safari on iPhone, is pretty similar to Webby in that it’s another CF-based shell. The initial versions were pretty bad; hopefully, future versions will, hopefully, improve on the situation.
Finally, Spb Pocket Plus 4 should be mentioned (see screenshot on the same slide, showing its tabs). While before version 4 it was definitely worse (it didn’t even offer on-screen, easily clickable tabs) than PIEPlus or MultiIE (the two major alternatives), this is no longer the case: version 4.0 has fixed this, along with other goodies like accelerated screen dragging just like on the iPhone.
Now that we’ve seen the major browsers (and plug-ins) for the three operating systems, let’s quickly elaborate on what problems running them under Windows Mobile may result in.
The most important of them, particularly under pre-WM5 operating systems (particularly under WM2003SE), is the driver memory usage, which rendered NetFront and Opera Mobile unable to start under certain circumstances – unless you reset the entire handheld.
Let’s go on with discussing the different client-side techniques helping in reformatting (“reflowing”) a page to (horizontally) fit in a low-resolution screen. If we don’t do this, the low (horizontal) screen resolution (240 by default - 320 when used in Landscape -; some low-end MS Smartphones and pre-v3 Symbian S60 Smartphones had even worse-resolution (176*208 / 220) screens) results in having to scroll horizontally. This is why there are several “One column” client-side implementations. (There’re also middle-tier implementations like Skweezer; more on them later). On Windows Mobile, these special modes are supported by all browsers except Thunderhawk. On Symbian S60’s Nokia Web, in most cases, they are unnecessary as the browser is smart enough to be able to correctly re-flow text – as is the case in Opera Mini in non-one column mode. These two browsers are truly excellent in intelligently reflowing text.
In IEM, there’re (with WM2003SE+ devices) three rendering modes: the truly one-column “One column”, the “Fit to screen” (later renamed to “Default”), in addition to “Desktop view”. The three screenshots on this slide show an example BrightHand forum page in the Desktop / Fit to Screen (Default) / One Column order (from left to right).
Note that One column isn’t necessarily better than Fit to screen. There are cases when the latter delivers better results than the One column mode; for example, when you render simple charts (tables) not wider than 3-4 columns (or 6-8 columns in High-Resolution mode, if your handheld is a high-resolution one). Then, One column will display all the cells vertically, making the original layout completely messed up, while the Fit to screen mode will try to render them horizontally. However, in general, Fit to screen delivers results not needing horizontal scrolling in much fewer cases than Nokia Web or Opera Mini 4+ in non-mobile view mode, particularly on low-resolution (for example, QVGA) screens.
As, as has already been pointed out, pre-WM2003SE PIE’s, where there’s no One Column and the only “Fit to Screen” (Default) mode can’t correctly render the contents of the page without horizontal scrolling, you’ll need to use one of the following alternatives:
External Web compression / reformatting / one-columnizing services (Skweezer, Google Mobile etc.). They, unfortunately, get rid most of JavaScript code, making a lot of JavaScript-based functionality like changing pages in some forum engines inaccessible.
PIEPlus because of the explicit Pocket View mode, which fixes this problem
Use an alternate browser like Opera Mobile (WM2003) or Thunderhawk (compatible with even PPC2k / 2k2), which handle these cases much better
Wait for Touch Browser’s (which does have a built-in One Column mode) becoming much better
With Opera Mobile, the three rendering modes are almost the same as under IEM. It should, however, be pointed out that the One Column mode is buggy: the horizontal size is 240 pixels; that is, it’s only really usable on QVGA devices used in Portrait – preferably not in Landscape and definitely not on a (W)VGA hi-res model.
It, as has already been stated, generally fares much better in rendering blocks of texts without any need for horizontal scrolling. Just compare the first (leftmost) screenshot to the Desktop rendering screenshot of IEM: as can clearly be seen, this particular page was correctly (no need for horizontal scrolling) rendered by Opera Mobile in Desktop mode, unlike with IEM. (Of course, most of the time, you won’t want to use the Desktop mode, unless you need to see images in their original size, without being resized to fit the screen.)
The three screenshots, from left to right, show exactly the same three modes, in the same order, as with IEM: Desktop, Fit to screen and, finally, One Column. As the screenshots have been taken on a VGA device, the latter is buggy and only uses the left half of the screen.
Note that the One Column mode is clearly better implemented in Opera Mobile than in IEM (apart from the 240-pixel bug): it renders charts much better than IEM in One Column mode. See the example screenshots and discussion at the end of section 1.2 Opera Mobile of the MS Smartphone Web Browsing Bible.
NetFront has three similar modes: Normal, Just-Fit (about the same as “Fit to Screen” / “Default” in IEM and Opera Mobile) and, finally, Smart-Fit. The latter mode is without doubt the best: it’s like One Column, but still tries to render contents horizontally where applicable, unlike IEM and like Opera Mobile.
The three example screenshots (from left to right), as with IEM and Opera Mobile, have been taken using Normal, Just-Fit and Smart-Fit.
Minimo only has two modes: the default (desktop) mode and SSR (Small Screen Rendering), which is almost the same as One Column mode in the other browsers. The two screenshots show this (left: default, right: SSR).
Finally, in the Thunderhawk screenshot, you can see how well it manages to display even the most delicate screen contents without the need for horizontal scrolling. Note that it forces the user to use the horizontal orientation, which may be overly problematic on models with screen polarization issues in this orientation (as opposed to Portrait mode). However, users of devices with pre-WM2003SE operating systems (and a device without polarization problems) will surely welcome Thunderhawk’s using Landscape mode – none of the alternate browsers do so, not even the ones that, otherwise, could (as with some e-book readers like Mobipocket), not being based on IEM. (It was in WM2003SE that user-switchable Portrait / Landscape rotation has been added.)
Now that we’ve reviewed the browsers’ approach to rendering pages / textual page content originally designed for at least 800-wide screens on 176…640-wide screens, let’s turn our attention to other questions like (easily) controlling the browsers – for example, scrolling pages using hardware buttons.
There are several ways you can easily scroll a Web page up and down without using the touchscreen. The most common way of doing this is using the D-pad.
1. If you stick to using the D-pad, under IEM, by default, you’ll end up using link scrolling (as opposed to page scrolling). This can be a pain in the back, particularly on pages that have several links on them (you end up having to press Down several times to be able to scroll to new contents); fortunately, it can be altered on the Registry level (with a Registry hack). Most IEM plug-ins (PIEPlus, MultiIE at least) allow for doing this on the GUI level, making Registry hacks unnecessary.
Some browsers / plug-ins even allow for supplying the one-page-at-a-time scroll amount in percents. The screenshot in the slide shows exactly this with NetFront, where you can easily set this.
2. If you (also) utilize other buttons for at least page scrolling down, you can still use the D-pad for link scrolling (assuming you prefer one-handed use and don’t want to touch the screen to follow a link) by assigning the Page Down operation to any hardware button. This has thoroughly been explained in the Button Enhancer Bible.
3. Also, if you have a volume slider on your handset, you can use the jog dial / volume controller with the excellent SmartSKey utility; most of the browsers support this.
4. Under Settings / Buttons, you can also directly assign the “Page Up” and “Page Down” functionality to any hardware button (or, for that matter, even special buttons, jog dials and volume sliders with advanced, third-party button enhancer utilities like AE Button Plus.)
Note that, as far as Symbian is concerned, it Nokia S60 Web makes navigation pretty easy with its minimap accessed by pressing and holding the up/down button. So does the built-in Web browser with the latest, 4.5/4.6 version of BlackBerry. Finally, don’t forget that Opera Mini and Opera Mobile support page scrolling using the numeric buttons on phones that do have these – then, you can still use the D-pad to scroll link by link (or, if you use Mobile View [that is, One Column mode] with Opera Mini, left/right to scroll pages).
While certainly not as widely used as Flash content (any more), Java applet support is still nice to have – some (mostly internal and/or enterprise front-end) pages (still) use Java applets. For Windows Mobile, there are several solutions - Java Virtual Machines (JVM's). BB and Symbian have absolutely no applet support.
IEM depends on JVM plug-ins (as is the case with Flash plug-ins). Only two JVM’s have applet support (JVM’s with no Applet support are IBM J9 (it’s MIDlet / Personal Java only) and Mysaifu (it’s application-only)):
* Insignia Jeode; last version dates back to 2003 (came with the iPAQ 5550 – and previous iPAQ models. Most of these are locked to either the iPAQ brand or the given model). Today, as Insignia / Esmertec has stopped developing it (because they have moved to producing MIDlet managers), it can in no way be acquired legally
* CrEme: this is without doubt the best JVM to run applets. Unfortunately, it’s not meant for non-OEM customers, albeit they do have a downloadable 30-day trial on their homepage
Unfortunately, unlike with the Flash (Lite) plug-ins, Opera Mobile can’t make use of these plug-ins.
As far as the other browsers are concerned, the following two browsers have a built-in JVM:
* NetFront 3.1+: acceptable quality / compatibility (unfortunately, worse than Jeode / CrEme – as is the case with Access’ own Flash support in NetFront)
* Thunderhawk: in order to avoid producing a huge install (even older, non-fully-fledged Java runtime libraries easily add 1-2 Mbytes to the static size of the program [let alone newer JDK’s like 1.5+], which is pretty low – around 700 kbytes – with TH) and still provide full (!) JDK 1.5+ compatibility, the BitStream folks have gone for a strictly client-server solution, the server-side actively interpreting and executing the applet and just sending its GUI as a static image to the client. It, while it indeed offers full JDK1.5+ compatibility, has some cons compared to all the other solutions using local code execution: the images are low-res, slow-to-refresh and can cause excess data usage as the image of their GUI needs to be downloaded to the client every, say, second.
There’s absolutely no applet support in Opera Mini/Mobile or Minimo. In addition, currently, the WebKit-based browsers (Iris etc.) don’t support applets either - as with the Flash plug-in. Hope at least this changes in the future.
There’re some additional Web technologies that have become pretty standardized. You may have noticed Internet Explorer, Firefox or Opera don’t contain any kind of a Flash plug-in on the desktop Windows. The situation is exactly the same on mobile operating systems: few browsers or operating systems come with Flash support built-in (the two most important exception being NetFront on Windows Mobile and Symbian S60’s Nokia S60 Web with Flash Lite 2 / 3).
Flash being by far the most important additional technology requiring a plug-in (with most browsers), let’s take a deeper look at the Flash support on all these mobile operating systems. Let’s start with Windows Mobile.
IEM (all versions starting with PPC2k2) and Opera Mobile (as of version 8.65+) both have a somewhat restricted Flash 7 plug-in (and Flash Lite 2, in addition). It’s quite outdated and, of course, doesn’t support the latest technologies. It isn’t particularly efficient either; for example, its YouTube / other Flash video playback performance is plain sub-par.
NetFront has a built-in Flash engine, which is even inferior to the Flash 7 plug-in: it’s buggy, (even) less compliant and has major CPU usage bugs.
There’s absolutely no Flash support in Minimo, Opera Mini and Thunderhawk.
As far as BlackBerry, Symbian and the iPhone are concerned, they have absolutely no full Flash support. Symbian, however, supports Flash Lite 3 (depending on the model and the firmware used) – unlike Windows Mobile. Flash Lite will be discussed in the next slide(s).
(The screenshot shows the full Flash-based Bomberman, one of my favorite real-world Flash tester games, running in IEM.)
Flash Lite 3, which has recently been released for some past and recent Symbian S60 3rd edition models as firmware upgrades, has excellent support for YouTube and other, Flash-based Web video repositories. It’s, unfortunately, not available for Windows Mobile / BlackBerry / iPhone (as yet). For WM, it’s coming; for the other two mobile operating system, nothing is certain.
The two screenshots show Nokia S60 Web on the v21 firmware-based N95 playing back YouTube videos; the bottom left in Landscape (the video shrinked to the QVGA screen size); the one on the right on the original size in Portrait (hence the vastly oversized video). I haven’t provided similar screenshots on Windows Mobile because the Flash 7 plug-in on WM is very slow & inefficient and it’s almost impossible to use it to play back any Flash videos. Fortunately, a lot of alternative methods for playing back YouTube exist for all these operating systems; this is the subject of the several following slides.
As many users spend a lot of time watching YouTube (and other) Web videos, it’s definitely worth elaborating on the alternative technologies of playing them back.
First, let’s elaborate a bit on the two major formats YouTube content is delivered: the high-quality H.264 & FLV (with accordingly high data usage) returned by the firewall-friendly HTTP protocol, and the low-quality, low-(QQCIF) resolution 3GP (returned via the firewall-unfriendly RTSP protocol). We, of course, will mostly be interested in the high-quality version – unless we really need to decrease data usage and/or use a low-resolution mobile device like a MS Smartphone with a 176*220 screen.
The desktop YouTube Web interface isn’t the best for mobile usage (slow, huge – over 300 kbytes – pages; only Symbian + Flash Lite 3 is able to play back inline videos). There is a mobile version created and supported by YouTube, which
* Already supports all the functionalities of the desktop (account, upload etc)
* Is compatible with most mobile platforms having an RTSP / 3GP player like RealOne – no additional player needs to be installed
* Already has all the videos, unlike a year ago when it became public
However, it’s lower-quality 3GP only (no FLV / H.264) and requires RTSP. That is, it can be vastly inferior in most cases and, therefore, should be avoided.
The screenshot shows the results of a search using the native mobile YouTube interface (which, again, should be avoided, unless you absolutely don’t need the vastly enhanced video and audio quality of the FLV / H.264 videos).
Let’s continue with alternate YouTube technologies – ones that don’t depend on the Flash plug-in (because of the slow and flaky Flash plug-in on Windows Mobile) or are usable on other platforms like the BlackBerry. Fortunately, there are several of them; one of the most important is vTap.
vTap has native clients for all mobile platforms. From the Windows Mobile one (see the upper right screenshot), you can even initiate video playback (this client is highly recommended and useful because it’s capable of searching on not only YouTube but also other video sites), while you can’t do the same from the BlackBerry one.
This also means you’ll need to turn to other solutions to stream YouTube videos to your BlackBerry handheld; an example of these solutions is vTap’s Web interface (not the standalone client) depicted in the three screenshots at the bottom, showing searching for clips, opening them as a stream and, finally, the media player rendering it. (Note that the rendered contents is invisible in the screenshot on the bottom right. This isn’t a bug.)
Finally, one of the several alternative YouTube playback solutions is YTPocket, which depends on the external TCPMP FLV playback support (under Windows Mobile). The two screenshots show the results of a search and, then, initiating a download (and the consequent invocation of TCPMP for viewing).
Let’s move on to another, completely different, but, for users of non-unlimited data plans, very important question: reducing data usage. This, incidentally, can prove very helpful for users over unlimited, but very slow (for example, GPRS, like Vodafone’s non-3G dial-up) connections.
There are several ways of optimizations and major data usage saving; this slide discusses the way you can drastically lower the data usage by employing server-side (gzip) encoding, which is supported by all mobile browsers (for example, on WM, starting with the PPC2k PIE; that is, it has had support for eigth years).
As a rule of thumb, if you can, you should check the Accept-Encoding header (telling you whether the client is able to process gzip-compressed responses) along with the User-Agent HTTP header to find out whether it’s a mobile client (should you only want to return GZIP’ed contents for mobile users if you find GZIP compression is using too much CPU on your Web server). If you go this way, keep in mind that several mobile users “spoof” their User-Agent headers so that servers never return mobile-specific contents to them. With some of these clients (most importantly, IEM), you’ll want to look for specific extended (X-) HTTP headers to be able to make a distinction between desktop and mobile clients - that is, correctly identify mobile ones.
Note that several content manager and forum engines (e.g., vBulletin) support GZIP’ing “out of the box” if it identifies the client as a mobile device.
Unfortunately, if you are just a user and can’t ask a webmaster to return compressed (GZIP’ed) contents upon receiving requests from mobile clients but still want to (vastly) decrease your data usage, you’ll need to do some client-side work. There are two main categories of doing this.
The first group, largely consisting of the free Toonel and the commercial (between 30…50 US$ - cheaper for recurring customers) OnSpeed, runs a “proxy” on your Java-capable and/or Windows Mobile-based mobile device and configures (or, forces you to manually configure) your browser to access the Web through it. The proxy takes care of compression by being connected to another, invisible server. The advantage of this solution, compared to the next, is mainly that you 1. don’t need to pay attention to visiting a mediator Web page to do the conversion for you and 2. you will always receive full Web pages, not dumbed-down ones without, for example, scripting.
The second group consists of Web services like Skweezer, MobileLeap, Google Mobile etc. They are easier to initially set up than the apps in the first group (absolutely no need to install third-party apps on your mobile); however, they’re a bit harder to use and, as has already been pointed out, they can royally mess up Web pages. Most IEM plug-ins like MultiIE, PIEPlus and Webby automatically support the online services; the first two (Toonel / OnSpeed) can be used with all Windows Mobile Web browsers allowing for proxy usage (that is, everything except Opera Mini and TH – not a problem though as they’re content-stripped / compressed already).
Let’s turn to an entirely different subject: compliance with different (important) Web standards. Let’s start with AJAX, which is getting more and more ubiquitous. Opera Mobile and Minimo have the best support for it; the two screenshots show these (OM on the left, Minimo on the right) rendering the entirely AJAX-based Google Image.
Unfortunately, IEM is (still) pretty weak when it comes to AJAX support, even as of WM 6.1. So is NetFront as of the currently commercially available 3.3; fortunately, 3.4+ is already much better. (But, again, currently, there’re only restricted Technical Previews of 3.5 you may not want to use because of the restrictions). Thunderhawk and Opera Mini both have rather poor support.
JavaScript support is pretty similar to this. The bad JS support of IEM results in, for example, Yahoo Mail buttons’ not working – a major problem with many users. The same stands for for example address autocompletion in Google Mail; currently, only Opera Mobile and Minimo support it (they have the best JavaScript compliance).
Still on the subject of Web standards compliance, let’s take a look at the compatibility with CSS. In this area, Opera Mobile is without doubt the best as of version 9.xx. Version 8.65 (the one officially and commercially available; screenshot on the left) is a bit worse in this respect. Minimo is the second (screenshot on the right). The slide also shows how the desktop (9.x-series) Opera renders the test page (the only desktop browser to render it without any glitches – see the referenced article for more screenshots of other desktop browsers if interested).
Let’s go on with evaluating the CSS2 (Acid 2) test results. This slide shows how NetFront 3.3 and IEM render the test. As can clearly be seen, they (particularly IEM) have nothing to write home about.
Still on the subject of Web standards compliance, let’s see the results of W3C’s brand new “Web Compatibility Test for Mobile Browsers” suite. First, let’s see how the Windows Mobile-based Web browsers render this suite.
This slide shows IEM in WM6.1 (left), the 5-year-old WM2003 (middle) and 7-year-old PPC2002 (right). As can clearly be seen, the Web standards compliance of IEM is only a tad better than that of its very old PPC2002 ancestor.
Let’s continue with the same W3C test suite, looking at the Opera Mobile and Mini results. The left screenshot shows Opera Mobile 9.33, which delivers almost flawless results (showing it’s indeed based on the new, 9.x-series kernel), as opposed to version 8.65 (2nd shot). Opera Mini 4.1 (on the right) delivers acceptable results – still much better than, say, IEM (see previous slide).
Let’s take a look at the third (and last) Windows Mobile W3C test slide showing the current Techincal Preview of NetFront 3.5 (left); the WebKit-based Iris browser (middle) and Minimo 0.20 (right). As can clearly be seen, none of them really excel – Opera Mobile 9.x is just far better than any of them.
Now, having finished with Windows Mobile, take a look at other mobile platforms. In the lower row, you can see the WebKit-based Symbian Nokia S60 Web (left), iPhone’s Safari (middle). The built-in browser coming with BlackBerry 4.2 (right) follows; the latest (still beta), 4.5 BlackBerry version (topmost) shows the new BB operating system indeed delivers a bit better results than the previous one – but still much-much inferior to even Opera Mini (which, incidentally, runs flawlessly on the BlackBerry).
Finally, in order to give you a complete picture of what you can expect of desktop browsers, an overview of their rendering the same test. (On the bottom: Firefox 3 beta5 (left); Internet Explorer 8 beta (middle); IE7 (right); on the top: Opera 9.5.). As can clearly be seen, Opera is by far the best and even the latest version of IE8 is far-far inferior than even the latest 3-series Firefox.
Now, let’s discuss the techniques needed to avoid certain HTML / page layout constructs that simply can’t be rendered by (some) mobile Web browsers. The most important stumbling block is that of frames: both IFrames and standard ones. First, let’s take a look at the latter.
With IEM (as opposed to most other major browsers) the number of (standard, not i-) frames is restricted (10/12 at most for pre-WM6/WM6+, respectively). One of the most widely known example of the affected pages is freemail.hu. The pictures show IEM (on the left) was simply unable to display the page in its entirety, unlike Opera Mobile (right), which has no frame limitations. Make sure you avoid an excess number of frames if you want to make your portal accessible to even IEM clients and you don’t have a specific mobile version!
Now, let’s take a look at Inline Frames (IFrame). They are in no way supported by pre-WM6 IEM and Thunderhawk. The former is shown in the screenshot on the left, showing the pre-WM6 IEM’s inability to render the contents of the test page. NetFront and Opera Mobile, on the other hand, have no problems rendering this area (neither has Opera Mini).
The lack of IFrame support also means no Gmail / Yahoo Mail dynamic address completion (which works in Opera Mobile and Minimo) is possible because they’re entirely based on IFrames.
This slide shows IEM coming with WM6 has indeed added support for Iframes and has raised the number of standard displayable frames to 12.
This slide explains some common cookie handling-related problems with NetFront and Thunderhawk. The text speaks for itself; no need to explain it further (rather than following the links to my original, lengthy articles and elaboration).
The next few pages elaborate on the language & encoding problems and internationalization (on Windows Mobile), which will be pretty important for you if you display / host / try to access pages not (only) using non-Western languages – or, for that matter, even special punctuation like “.
First, NetFront handles the HTTP character encoding header (Content-Type) vs. meta tag entirely differently from the other browsers. It is, unfortunately, buggy when 8859-1 is used along with special 8859-1 punctuation – for example, if you write your posts in Word and don’t disable its automatic character substitution enabled (and active) by default.
Opera Mobile is pretty problematic at POSTing (NOT displaying /rendering!! Only when user interaction / form-based posting takes place) some contents; for example, special 8859-1 punctuation and everything different from 8859-1.
To easily fix these problems, if you’re a webmaster and know your pages do contain some special punctuation coming from, say, Word and want it to be rendered by NetFront or editable and (re)POSTable by Opera Mobile correctly, do convert dynamically (in the runtime) all these characters to their 8859-1, “plain” equivalents.
If an Opera Mobile client edits a non-8859-1 document (like an article or a forum post), convert all special Unicode characters (like ő and ű) to HTML char entity codes (ő and ű with ő and ű, respectively). These entity codes are correctly POSTed back by the browser.
As has already been mentioned, Thunderhawk uses its own, Western-only character set. It contains absolutely no other characters. Even when the operating system does support the given character set (and is able to render all the characters well), Thunderhawk won’t and just display a hyphen as a placeholder upon encountering them (the text in the screenshot shows some of these). Therefore, in order to correctly display non-Western, but easily 8859-1-mappable languages (typically, Eastern-European languages not using Cyrillic characters belong to this category), as a webmaster, you may want to check for ThunderHawk User-Agents and substitute the characters accordingly when encountering a TH client.
Some Web pages (and Web frameworks / content handlers) allow for easy internationalization – that is, dynamically returning a different-language page upon encountering a special HTTP request header. This slide elaborates on this and lists the two browsers (PIE and Minimo) that do let for setting this particular header. Unfortunately, the other browsers need an external HTTP request header rewriter proxy running anywhere (including your own PDA) to gain access to this functionality.
The two screenshots show IEM rendering b2evo’s login screen in English and Finnish (with automatical swithcing between them; no need for user interactions / language selection via links on the page), depending on the preferred language flag sent by the client.
Unfortunately, several mobile browsers don’t really shine at Web standards compliance either when it comes to downloading and saving binary files to the local file system on these handhelds.
The problems most users face:
* Content-Type: text/plain response problems with binary content: IEM & NF don’t try to decide whether the body is binary and blindly render it – as opposed to IE on desktop Windows. No such problems exist with other Windows Mobile browsers. That is, make sure Content-Type is correctly set on the server to allow for binary downloading to IEM & NF! Alternatively, if you are just a user and have no effect on the webmaster’s correctly setting this header, either use an IEM plug-in allowing for saving link targets, use a standalone HTTP downloader tool like Adisasta WinMobile Download Accelerator 2+ or HandyGet - or switch entirely to a different browser.
* NF and Opera Mobile send out download requests twice, while other browsers – including desktop ones – only do this once. This is why for example downloading from RapidShare doesn’t work in these browsers. If you’re a webmaster, the solution is simple: never reject double download requests. If you’re a mobile client only, switch to IEM – at least for the time of download.
* Referer-related problems: before WM5, PIE (and Thunderhawk even now) don’t pass the Referer header. Therefore, if you’re a webamin, don’t blindly trust the Referer header always being sent in order to deny out-site download requests. Just make a User-Agent test to check whether download requests not containing a Referer header originate from PIE and TH. If they do, you can safely let them download.
Note that you can greatly speed up your Web (and FTP) downloads by using multithreaded downloader clients (like FlashGet on desktop). Currently, two of them are worth mentioning:
* The just-released Adisasta WinMobile Download Accelerator 2.0 (do NOT use older versions because they’re slow!)
* HandyGet 1.6
The final slide discusses the opposite of the previous one: uploading files to Web. File upload is supported by all browsers (except for TH); IEM starting with WM5. As Opera Mini 4.1+ also supports it, you can even upload from the otherwise not very capable BlackBerry platform.
If you have a browser that isn’t upload-capable, then, switch to another browser that can. And, if you’re a webmaster hosting a page with file upload capabilities (like all forum engines, social network pages etc. allowing for attachment / image upload), you will need to ask your mobile clients to do the same. Alternatively, if you’re absolutely sure some of your clients won’t want to touch other browsers, you may also want to provide FTP upload support or, if you only look for text input, a HTML textarea to paste their text to.
The left screenshot shows PIE under WM2003SE. As can clearly be seen, there’s no “Browse” button (and file path field) in it – while the WM5+ screenshot (on the right) already displays (and lets for using) it, showing it (still) didn't have upload support.
That's all, folks - hope you liked this all And, yes, feel free to ask questions even here, even now.
I’ve just published my last roundup, sporting the latest Web browsers available:
Iris 1.0.16 (1.1.0 b3)
Opera Mobile 9.5b2 / b15233 (!)
Opera Mini 4.2.13337
SkyFire 0.85.0.8184
PIE, along with Spb Pocket Plus 4.0.2
Internet Explorer Mobile 6 (IEM6) (!)
NetFront 3.5.009 b729
… and compared all these to the Safari running on the iPhone with firmware v2.2.
The new roundup is available at http://forum.xda-developers.com/showthread.php?p=3130648

[APP][2.2+] 3d-graphics app Spacedraw

Professional 3D modeling on tablets and smartphones is viable finally!
- Major new version of Spacedraw available, further extensive updates to follow soon and regularly
Spacedraw
is a full-featured 3D-modeling program for all Android tablets and smartphones
is developed from scratch to make use of multi-touch and motion-sensors throughout
introduces novel ways of viewing, drawing & modeling
Features include
CAD construction
advanced polygon & patch modeling
lighting & texture mapping
3d-painting
Since the release in October 2012, Spacedraw has proved suitable for creating professional artwork, see the images below, done 100% with Spacedraw on a 4" smartphone (using beta versions of the new release).
However, Spacedraw was not developed further for over a year, and serious bugs and shortcomings prevented its application in real-world projects. This will change with the release of version 1.1 today, that fixes over 20 serious bugs and adds more than 10 important features, e.g.
orthographic projection
backface culling
freezing objects
unselect tools
repeated extrude
completely redesigned reference CS management
The further development runs at full speed now, next updates soon will bring
fundamental usability improvements
interactive help and tutorials
substantial performance increase
stylus support
a complete revision of the painting tools
a multitude of new functionalities, e.g. advanced rendering capabilities, boolean operations
full-featured animation
Suggestions for improvements are highly welcome and will be taken seriously!
See the website for further information
Spacedraw is available as a free version without ads that can be used with the following limitations:
only scenes with up to 1000 vertices can be saved or exported as .obj files
the undo-history cannot be saved to files
A key can be purchased for currently just $2.99 (until March 8, then $11.99) to remove these limitations
This Android app is damn impressive. Nothing comes close to that on any mobile OS. Sure there are some serious bugs left. But in terms of pure poly modeling (complex splines skeletons and patches are still a bit bugged) it's possible to model anything. I did a lot of complex meshes using spacedraw while travelling. Only big thing missing in my opinion to make it a perfect modeler : unwrap UVW. Controls on texture mapping exist (UVs edit) but are far too hard to manage : you have to do the UVs editing in the 3D view ! instead of moving the planar projection of your wireframe.
But again : this is a perfect example that 1) phones are now powerful enough to handle generous amount of wireframes and complex geometry editing (before Spacedraw most of the devs were doing only "3D viewers"... a bit cheap innit ? 2) 3D modeling with your hands is the present folks.
I hope Spacedraw will improve soon. And I REALLY hope that Discreet or other major players in the business will wake up soon and realise that there IS a market here !

[APP][Android 4.3+] SoloPi automated-testing tool (No-Root)

Synopsis:
This article mainly introduces SoloPi, which is a wireless, non-intrusive and root-free Android testing tool implemented by Alipay on Android devices. The automatic, performance, compatibility and stability test of the mobile phone can be realized by directly controlling the mobile phone.
1. Introduction:
In recent years, mobile testing technology has made great progress with the rapid development of mobile internet. Test efficiency has been improved again and again from the single device automation based on testing scripts in the early time, to recording and playback, image recognition, cloud testing platform and other testing technologies, fits the needs of actual business, in-depth application and innovation.
This article mainly introduces a wireless, non-intrusive and Root-free Android testing tool SoloPi implemented by Alipay on the mobile terminal. The automatic , performance, compatibility and stability test of the mobile phone can be realized by directly controlling the mobile phone.
1.1. Mobile Testing 1.0 Era
Mobile testing 1.0 era, can also be called the exploration period. As tired of day-to-day manual operation, how to improve the test efficiency has become the most important topic in the field of mobile testing. During this period, in addition to Monkey, Uiautomator, Instruments and other official tools, a number of excellent open-source automatic testing tools / frameworks have emerged in the industry. Based on the automatic driven ability, it can not only realize the verification of basic functions, but also realize the automation of various targeted type-based tests by combining performance data gathering scheme and traversal algorithm. In this stage, the common form of automatic testing is to deploy the testing environment on a single PC or a few local PCs, and then use Jenkins and other tools to achieve continuous integration.
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
1.2. Mobile Testing 2.0 era
With the continuous development of testing technology, and benefits from the open source of STF, the concept of cloud testing platform began to emerge in the industry, which packaged real device equipment, task management, automatic framework and targeted type-based testing scheme into the platform and provided them as services, bringing one-step testing experience to users. On the other hand, the introduction of remote debugging, equipment scheduling and other technologies greatly improves the utilization rate of equipment, and testers no longer need to worry about the lack of testing equipment or the time-consuming queuing of testing tasks. For users of cloud testing platform, the common testing pattern at this stage is to develop testing scripts on local PC, upload them to the cloud testing platform for execution, and finally view the testing report on the platform. The testing process is simple and clear.
1.3. Mobile testing 2.0+
In keeping with the above "cloud testing", testing technology in the era of mobile test 2.0+ usually provides a set of complete solutions rather than an independent small tools, for example, to provide users with a set of customized IDE environment, combined with the recording playback, image recognition technology, the user may only need to do some simple checkbox select, drag and drop to complete the testing scripts development. On the other hand, due to the limitations of office environment, hardware conditions and other factors, more and more testers hope to initiate testing directly on the mobile terminal and make mobile testing with random mobile-state. Of course, whether it is the cloud, IDE, or mobile, all of them should be able to communicate with each other, test easily in multi-device and variable system, so that the testing scheme can be more flexible and applicable to more scenarios.
2. Wireless driven Android testing tool: SoloPi
The concept of "test easily in multi-device and variable system" is broad, which may not be clearly explained by only one article, so the following will focus on a set of wireless, non-intrusive, root-free Android testing scheme SoloPi that we have implemented on the mobile terminal in order to welcome the era of "mobile 2.0+". Automatic, performance, compatibility, stability testing and other work can be realized by directly controlling the phone.
2.1 Overall structure
HTML:
Replay Video
In this scheme, the underlying dependencies are mainly "wireless ADB, system assist, Chrome debugging, and image recognition technology", which will be described later in the article. At the same time, on the basis of the underlying dependency, we encapsulate a set of core capabilities, consisting of "widget positioning, event-driven, performance data gathering and dependency injection", and realize common service capabilities such as recording, playback and data processing in the service layer. At the top of the architecture, the interface interaction logic encapsulates the entrance of each function.
2.2 Wireless ADB
As is known to all, for Android automation, ADB Shell's executive ability is the foundation of everything.
On PC, ADB Client provided by Android SDK communicates with ADB Server also running on PC, and then ADB Server communicates with Adbd located on the device via USB. To implement a set of wireless scheme, it is necessary to get rid of the dependence on USB cable. Fortunately, Android also provides a socket-based ADB connection mode. In this case, you only need to communicate with the native 5555 port on the end according to ADB communication protocol to obtain the executive ability of ADB shell.
There are already Java open source projects that implement the ADB communication protocol, such as AdbLib, they encapsulate an ADB debugging communication service that replaces the role of ADB Server on a PC. We have integrated the AdbLib open source library in SoloPi applications and packaged it as a set of ADB command execution tools, laying a solid foundation for SoloPi's subsequent implementation of various testing capabilities. The following will introduce you SoloPi's core features.
2.3 Recording and playback
The recording and playback based on AccessibilityService, ChromeDevToolsProtocol and image recognition achieved the accurate search. It can be played back locally on the device or converted into scripts of Appium/Macaca and other automatic frameworks to connect to the cloud testing platform. In addition, in order to reduce user maintenance cost, we also provide functions of testcase editing and process control.
2.3.1 Implementation
During the recording process, SoloPi will intercept the user's operation, identify the location of the user's operation, highlight the control for the current operation and record the current operation type of the user. After each step of operation, all kinds of information about the operation type and target control will be recorded. Control information here includes basic information such as the control's ID and text, as well as relative layout, screenshot information, and so on.
During playback, SoloPi will parse the previously recorded data item by item, and locate the target control through intelligent search algorithm, comprehensive various properties, and perform appropriate operations, such as clicking and sliding, after finding the control. After all the steps are performed, the results of the playback, including logs, screenshots and other information, will be displayed as a summary of the playback.
2.3.2 Widget lookup capability
For traditional Native applications, the properties obtained through UiAutomator dump are sufficient for automation. However, with the steady development of mobile dynamic capability, more and more applications adopt the hybrid development scheme of "Native + H5/Tinyapp". In addition, considering the rapid development of mobile game industry in recent years, the demand for automatic testing of mobile games is also increasing. In order to fit as many scenarios as possible, SoloPi provides three lookup modes:
Don't need to say more, the core of the first scheme is to generate the current control view tree based on AccessbilityService and record the attributes such as ID and text, which is suitable for Native scenario.
The second scheme is based on the Debugging protocol of Chrome. The page layout and the attributes of each element can be obtained by injecting JS. The positioning idea of the control is consistent with the scheme of Accessbility. Suitable for H5/ Tinyapp scenarios.
The third scheme is the image matching scheme. SoloPi implements a set of image matching capability on the device, combines template matching, feature matching and other algorithms, and makes certain adaptation and tuning. Suitable for game automatic scenarios. In addition, in the current SoloPi scheme, the image matching ability will also be used as the first two positioning methods works for all the details, further improve the accuracy rate of control search.
2.3.3 Playback capability
The testcase recorded by SoloPi is stored as JSON, so that the testcase can be directly played back on the device as demonstrated in the above video. Moreover, the testcase can be converted into scripts of the current mainstream automatic testing framework such as Appium and Macaca through SoloPi's parser, and the cloud testing platform can be easily accessed. In addition, benefits from the ability of text capture and image recognition, SoloPi also realized the ability to record the testcases once on the Android side, and the generated scripts can be played back on both Android and iOS sides at the same time.
2.3.4 More functions
SoloPi also provides testcase editing functions such as insert, delete, and modify of testcase steps, which can effectively reduce the maintenance cost of testcase. In addition, SoloPi introduces flow control capabilities such as loops, conditions, and so on. If the test cases are properly choreographed, tool scripts that require repeated operations or stability testing scripts that require violent playback can be easily implemented.
Additional recording and playback capabilities include the ability to combine data-mock to improve testcase playback instability, to get through performance tests, and so on.
2.4 Multi-control By One Device
Among all kinds of targeted type-based tests, compatibility testing is the most time-consuming and laborious one. Testers need to pay attention to various system versions, various mobile phone manufacturers, various types of screens and so on. It is very expensive to guarantee the quality of compatibility testing through pure manual test.
SoloPi implements a compatibility testing scheme based on the recording and playback capability. In the playback scenario, we first record the user's actions on one device, and then implement the playback of the actions on any device. If the scene is extended to more than one device, multiple devices can be controlled by one device. We call this function "Multi-control By One Device (MBOD)". More concretely, a Socket connection is established between the host and the slave, and then send the user's operation to each slave in real time on the host, and complete the playback of the operation on the slave.
The setup of MBOD environment is flexible. After installing SoloPi on the mobile phone at hand, deployment can be completed through simple joint operation. MBOD is adapted to the current mainstream models and ROM in the market, and encapsulates some quick functions to improve the testing efficiency, such as application installation, data cleaning, equipment information viewing and so on.
2.5 Performance Testing
When it comes to targeted type-based tests, performance testings have to be mentioned. In recent years, mobile applications have become an indispensable part of people's daily life, which also puts higher requirements on the application experience. In order to give users a easy and smooth experience, it is not enough to just implement functions, and performance testing is an indispensable part of creating a good application. However, it is not easy to carry out performance testing. On the one hand, performance testing has certain thresholds, and many times it is necessary to develop scripts to implement it and deal with various compatibility issues. On the other hand, most performance testing scenarios capture basic indicators that make it difficult to detect deeper issues. SoloPi implements a set of performance testing tools to solve the above problems. It includes three functions of acquiring conventional performance indicators, response time calculation and mobile Lighthouse.
2.5.1 Regular performance indicators acquisition
SoloPi supports the real-time acquisition of regular indicators such as CPU, memory, FPS and network traffic, as well as the recording of performance data, which can be stored locally and displayed in the form of reports. SoloPi also provides the ability to upload data that can be sent to the server for further processing. The complete set of performance tools supports manual and broadcast trigger, which can be easily combined with automatic testing.
2.5.2 Response time calculation
In addition to capturing regular performance indicators, SoloPi provides the ability to calculate response time. One of the most commonly used methods for calculate response time is based on code embedding point or system logs (e.g. ActivityDisplayed Time), but the results of this method are differ from users' experience for interfaces that are more asynchronously loading.
SoloPi realized a scheme to calculate the response time close to the user experience based on the ability of recording screen and framing. Specifically, after opening to record screen, SoloPi will monitor screen click event based on the command of ADB shell's get event , as a starting point of the response time, when after recording screen, SoloPi would compare the video from back to front in reverse order to find out the point when the interface tends to be stable in time, and as the end of the calculation. The subtraction is response time.
2.5.3 Mobile Lighthouse
As technologies such as H5/ Tinyapp account for an increasing proportion of mobile applications, how to test the performance of such applications has become a new topic. As anyone who has been exposed to front-end performance knows, Lighthouse is a powerful tool for front-end performance testing, but it cannot be directly used on a mobile phone. And SoloPi is the performance testing tool which implements a Lighthouse in the front-end based on CDP, it can obtain the H5 / Tinyapp startup performance of the page, the flow of resources consumption, request quality, quality of JS, call situation and page information of JSAPI, and built more than 30 best practices of front-end development , aims to find fine-grained performance problems.
The concrete implementation plan is that SoloPi connects to target app with websocket based on Chrome dev tool protocol to listen for callbacks of events such as page initiated request, data receiving, start loading, etc., and to collect data such as error reporting and Trace. Then the data is classified and sorted according to the six dimensions of startup performance, resource flow consumption, request quality, JS quality, JSAPI call situation and page information. Then the collected results are judged by the built-in rules, and the report is finally generated and displayed in the interface.
3. More
As a complete set of targeted type-based testing scheme, besides recording and playback, Multi-control By One Device and performance testing previously mentioned,SoloPi also provides data-mock, performance compression, network simulation, intelligent Monkey, and other functions . Part of the source code of SoloPi is open source currently (Please search SoloPi in Github).
HTML:
SoloPi
Welcome to join us in developing better testing tools!

The best scientific, graphing, and CAS calculator apps for Android: Comprehensive comparative review

Introduction to my app reviews on the XDA forum
This is the first of a series of such comprehensive app review threads that I have planned (the others will be much shorter however).
While I will publish the reviews later in other places also (like my website and medium.com), I have decided to publish them here first in the hope of getting suggestions for improvement from many interested people, and maybe from the developers of the apps also.
Introduction to this review of calculator apps
In this article, I will attempt to find, evaluate, and compare the best advanced calculator apps for Android, as comprehensively and objectively as possible.
I also include high-quality “basic” scientific calculator apps with features like scientific constants, units, and base-n calculation. Further, I include advanced "learning calculators" like Photomath, but I evaluate only their ability to solve mathematical problems, not their pedagogical value.
I hope the article will be helpful to anyone who wants to do more complicated calculations on Android devices, and also to the developers of the calculator apps, and to programmers considering the development of another calculator app.
I decided to write it because there are now many good and useful advanced calculator apps for Android, but not one thorough review (at least I couldn’t find one). While there are many “reviews” of the best such apps on the web, those lack
systematic search for available apps,
thorough tests of the apps,
comparison of features,
comparison of data from Google Play,
examination of other reviews.
Accordingly, they do not provide an objective overview of the best apps. Also, they seem to be written mostly by people with no special love for math and programming.
While I am myself not a mathematician, I have studied mathematical physics and computer science (PhD), and have developed complex Android apps (an advanced 3D modeling app, and App Finder, a sophisticated search engine for apps on Google Play, which I have used for this review).
Please note that this is a VERY long and detailed review. If you just want to know what the best calculator apps are, you may directly read my recommendations here.
If you are mainly interested in this as an example for the usage of App Finder, you may just read the section about the searches.
If you are new to this forum, please note that you can change the style from dark to light via the "XDA-Dark" button at the very bottom of the page. Also, you can hide the left pane using the three-line button top left.
If you like this article, please read the post at the bottom of this page.
Classification of apps and compilation of features
Kinds of calculators
Since for different people and different purposes, different types of calculator apps will be optimal, let us first make a classification.
Traditional handheld calculators may be classified as follows (excluding completely basic and financial calculators):
Basic scientific calculators
Advanced numeric scientific calculators
(distinguished from the basic ones by e.g. equation solving, calculus, and matrix calculation capabilities)
Programmable calculators
Graphing calculators
CAS (Computer algebra system, i.e. symbolic computation) calculators
(also including the functionality of advanced numeric, programmable, and graphing calculators)
However, if one needs more than a basic scientific calculator at all, it will probably be useful to have symbolic as well as numeric calculation, and also graphing (and possibly programming).
This also seems to be what most calculator app developers have thought, since nearly all good apps with a functionality exceeding basic scientific calculators include at least basic symbolic computation and graphing features.
Therefore, I will classify the apps here simply as “basic” or “advanced” calculators for feature comparison.
Nevertheless, a more detailed classification is useful and will be used to structure this review:
Advanced general-purpose calculators
Apps with a wide range of advanced numeric and symbolic computation and graphing that are convenient for both quick and more complicated calculations.
Graphing tools
Apps specializing in graphing, whether or not they include other functionality.
CAS answer engines
Apps with powerful symbolic computation, that also accept input in natural language, and can give not only calculation results, but also information on mathematical definitions and concepts (WolframAlpha is currently the only such app).
Advanced learning calculators
Apps designed for learning mathematics, often with symbolic computation, showing intermediate calculation steps, and able to recognize written problems from photos.
Advanced calculators of other types
E.g., apps with a “notebook interface” (similar to Mathematica), computer algebra systems with a command-line interface, and apps with programming / scripting.
Intermediate scientific and graphing calculators
Apps with some advanced features like 2D graphing, basic numeric / symbolic calculus, numeric equation solving. Up to the level of the TI-84.
Basic scientific calculators
Apps without advanced mathematics like calculus, that are nevertheless suitable for science and engineering (with features like scientific constants and units, and base-n calculation).
Features and test problems
To be able to objectively compare the apps, I have made lists of important features and some test problems.
The test problems are of course quite arbitrary and cover only a small part of the features, and a still smaller part of the range of important problem types. Nevertheless, I think they give some helpful insight into the power and reliability of the apps.
The features that I consider essential are in blue and will be used as the baseline for the reviews. More advanced features, which fewer people will need, are in parenthesis. Even more advanced features are in double-parenthesis. The test problems are in green.
Advanced calculator features and test problems​As a basis I have taken the functionality of advanced hardware calculators like the TI-89 or TI-Nspire CAS, while considering the capabilities of modern Android devices.
Numeric and symbolic calculation
(in addition to the basic functionality of all scientific calculators):
Complex numbers: Rectangular and polar form, common operations and functions
Symbolic computation essentials:
Calculation with exact values (fractions, roots, pi, etc.)
e^pi/e^(2pi) should be simplified to 1/e^pi or e^-pi
Automatic simplification
2x/(x^2-1)-1/(x-1) should be simplified to 1/(x+1)
(Factorization and expansion of polynomials)
((Equation manipulation))
(Assumptions, e.g. domain constraints)
Equation solving:
Numeric
Ln(x) = -x should be solved as x = 0.567143
sin(x) = x/2 should be solved as x = {0, ±1.89549}
Symbolic
sin(1/x)=0 should be solved as x = 1/(n*pi)
ln(x*y) = y*ln( y) should be solved as x = y^(y-1)
Real and complex solutions
(X+1)^2 = -1 should be solved as x = -1±i
(Equation systems)
x²+y² = 2 and x²*y² = 1 should be solved as x = ±1 and y = ±1
(Specification of variable ranges)
(Inequalities)
Differentiation and integration:
Numeric
Symbolic
(e^x+1)/(e^x-1) should be integrated to 2*ln|e^x-1|-x
1/(1+sin(x)) should be integrated to e.g. tan(x/2-pi/4), or -2/(tan(x/2)+1), or (sin(x)-1)/cos(x)
x/(1+sin(x)) should be integrated to e.g. 2*ln(cos(-x/2+pi/4))-x*tan(-x/2+pi/4)
x/ln(x) should be integrated to Ei(2*ln(x))
Multiple / nested operations
Other calculus and analysis:
Finding minima and maxima, numeric (and symbolic)
Minima of sin(1/x) should be given like 2/(4pi*n-pi)
Sums and products of sequences, also infinite, numeric and symbolic
Limits, also one-sided, numeric and symbolic
(Taylor expansion)
((Differential equations solving))
Matrices and vectors:
Standard operations and functions
(Vector calculus, esp. gradient, divergence, curl)
Basic number theory and combinatorics: random, prime factorization, gcd, lcm, factorial, nCr, nPr
Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers
Statistics and probability
One and two variable statistics: with frequencies, (histograms, box plots)
Regression: Linear, quadradic, logarithmic, exponential, …, with plots
((Confidence intervals calculations))
((Statistical tests, e.g. t, z, F, chi², ANOVA))
(Probability distribution calculations)
Calculation with units and unit conversion
Scientific constants
2D and 3D graphing
Display of multiple graphs in one coordinate system, also of different types
(Multiple workspaces, i.e. coordinate systems)
Graph types:
Cartesian function plots
2D: Polar function plots
Parametric plots, in 3D both curves and surfaces
(Implicit plots)
4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's cubic surface)
((Differential equations plots))
((Complex plots))
Display:
2D: (Customizable) grid, adapting to zoom (with major and minor lines)
3D: Labeled coordinate axes, (optional semitransparent x-y-plane, optional x-y-grid)
Custom colors for individual graphs
(3D: Surface display: solid with variable transparency, and as wireframe)
(3D: Both orthographic and perspective projection)
((3D: Quality settings))
(Animation of parameter variables)
Portrait and landscape orientation
Navigation:
Equal and independent scale of axes
2D: Simultaneous pan and zoom with 2 fingers
3D: Complete and intuitive navigation, e.g., orbit around center with one finger, pan and zoom with 2 fingers
(3D: Automatic rotation)
Analysis:
2D: Tracing
2D: Display of coordinates of intersections, zeros, extrema
Environment and user interface
Variables and functions:
Saving values to variables
(Custom-named variables for storing values and for use in symbolic computation)
(User-defined functions that can be used in numeric and symbolic calculations)
(Piecewise defined functions), ((Programmed functions))
(Intermediate calculation steps)
((Programming environment))
Input and output:
Display and input of expressions in standard mathematical notation, like in a textbook
Copy and paste, also parts of expressions
Undo & Redo
(Automatic calculation without tapping enter key)
(Multiple workspaces)
(“Quick Info”: Display of various useful information about the entered expression or result with one tap, e.g.: prime factorization for integers, alternative formats for numbers, alternative forms for expressions with variables, solutions for different variables for equations, graphs for expressions and equations with 1 or 2 variables)
History of calculations
Import / export, (sync and share) of variables, functions, (and history)
Adaption and customization:
Convenient interface for small phones, good use of the space available on large phones (and tablets)
Adjustable display text size (and keyboard size)
(Keyboard layouts for different screen sizes), ((Custom keyboard layouts))
(Light and dark mode, different themes, custom colors)
Documentation and source
Complete user guide (with full text search), (in-app and external)
(Function / command reference with full text search)
(Info / description of the algorithms used)
(Open source)
For Basic scientific calculators, I use a separate list:
Basic scientific calculator features​
Calculation
in addition to the basic functionality of all scientific calculators:
Basic number theory and combinatorics: random numbers, prime factorization, gcd, lcm, factorial, nCr, nPr
(Calculation with fractions, roots, pi)
(Base-n calculation: conversion and bitwise operations for binary, octal, hexadecimal numbers)
(Complex numbers: Rectangular and polar, common operations and functions)
(One-variable statistics)
(Calculation with units and unit conversion)
(Scientific constants)
Memories/variables, functions
Enough memories/variables
Using variables directly in expressions, not just inserting the value
(Saving functions)
Input and output:
(Standard mathematical notation, like in a textbook)
Otherwise, multi-line
Copy and paste, (also parts of expressions)
(Undo & Redo)
(Automatic calculation without tapping enter key)
Number formatting:
Custom number of decimal places, round/cut modes
Scientific and engineering formats
Thousands separator
(Repeated decimals)
History of calculations
(Import / export of variables, functions, and history)
Adaption and customization:
(Different keyboard layouts, custom keyboard layouts)
Light and dark mode, (different themes, custom colors)
User guide
The search
To search Google Play, I have used App Finder, an advanced app search engine that has data for nearly 2.4 million apps.
I have also quickly searched the following alternative app stores directly:
Samsung Galaxy Store
Huawei AppGallery
Amazon App Store
F-Droid
Aurora store
APKMirror
AppBrain
SlideMe
Aptoide
However, I did not find additional apps that can be recommended.
App Finder
For our purpose, App Finder has several advantages over Google Play’s build-in search:
Search algorithm: Google Play uses a complex undocumented search algorithm that takes many factors into account, and prefers the apps it thinks “you’ll have a good experience with” (see here). While this is often very good for quickly finding some of the best apps, it is not suitable for a comprehensive search.
In contrast, App Finder matches your search query against the descriptions of the apps in a clear and easily comprehensible way (see below).
Search operators: In addition to the usual search operators, App Finder has some special operators. For example, to require specific words to occur in title or summary, which can be very helpful to exclude irrelevant apps.
Filters: While Google Play’s search has only filters for a user rating above 4 or 4.5 stars and for paid apps, App Finder has a filter for user rating in 0.1-star steps, and many other filters.
Sort options: Like Google Play, App Finder sorts the results by “relevance” by default. That is, by a score calculated from the match with the query, the average user rating, and the popularity. However, App Finder also has the option to sort by a single characteristic like the average user rating or the number of ratings, which gives us better orientation for comparing the results.
Result count: App Finder shows the exact result count, so we can add keywords or filters if there are more results than we want to inspect.
Result list: Unlike Google Play’s search, App Finder shows all essential data, summary, and screenshots directly in the result list.
Additional data: App Finder shows
the average user ratings with two decimals, which is relevant for high ratings (consider two apps rated 4.85 and 4.94 stars respectively, which are both rounded to 4.9 stars by Google Play),
the number of downloads with two significant digits, with is quite an improvement over Google Play which rounds them down to powers of ten times 1 or 5,
World-average user ratings in addition to country-specific ratings.
Here’s a how App Finder matches search queries against the app descriptions:
In the simplest case, if you just enter keywords separated by spaces, it returns exactly those apps where all the words (or forms of them, like the plural) appear in the description (or title or developer name).
.
Words inside quotes are required to appear in sequence (different forms of the words are still allowed).
.
+ in front of a word (or quoted words) requires it to occur in title or summary, not just anywhere in the description.
(The summary is a short description limited to 80 characters that the developer must provide).
.
- can be used as usual to exclude words. It can be combined with + to exclude them from title and summary only.
.
The usual OR operator is supported. Additionally, / (a slash) can be used instead of OR. Contrary to OR, / is evaluated first, which makes it often possible to avoid parenthesis and repetitions. Also, / can be used inside quotes. No spaces are required around /.
Simple Search
Since scientific calculator and graphing calculator are universally used terms, we would expect each app intended as such a calculator to have one of these terms in title or summary.
With App Finder, we can search for this using the query +”scientific calculator” OR +“graphing calculator” (see above). Using the / operator, it can be simplified to
Query 1: +“scientific/graphing calculator”
Without filters, this query gives 432 results.
Note that all searches in this article were done in Mai 2023 for the United States.
To not miss anything, I have looked through all results without filters.
Already from the screenshots, it is clear for most of the 432 apps that they are very low quality, or that they are not what we’re looking for.
Investigating the promising apps further, and quickly testing the still promising ones, I found that all the best apps probably have at least 4.5 stars average rating in the US for the full-featured version, at least 100 ratings, and were updated within the last year.
(Which is of course roughly what one would expect anyway.)
With these filters, we get 33 results. The following screenshots show the result list, ordered by number of ratings, which gives us a good orientation.
I have cut away some irrelevant apps, and placed the ad-supported and paid versions of the same apps together (future versions of App Finder will place apps by the same developer together automatically ).
Reading App Finder’s result list
The numbers left of the colorful stars are the average user ratings calculated by Google Play, the top one for the United States, the bottom one the whole world. (App Finder can also show the ratings for any other country supported by Google Play.)
The stars represent the rating distribution: The size (that is, area) of the stars is proportional to the number of 5-, 4-, 3-, 2-, and 1-star ratings (from green to red). Between different apps, the star-size is correlated with the total number of ratings at a logarithmic scale.
Paid apps without an indication do not contain ads. For apps with in-app purchases, the price range is shown in parentheses.
Spoiler: Result list
{
"lightbox_close": "Close",
"lightbox_next": "Next",
"lightbox_previous": "Previous",
"lightbox_error": "The requested content cannot be loaded. Please try again later.",
"lightbox_start_slideshow": "Start slideshow",
"lightbox_stop_slideshow": "Stop slideshow",
"lightbox_full_screen": "Full screen",
"lightbox_thumbnails": "Thumbnails",
"lightbox_download": "Download",
"lightbox_share": "Share",
"lightbox_zoom": "Zoom",
"lightbox_new_window": "New window",
"lightbox_toggle_sidebar": "Toggle sidebar"
}
Search by functionality
Since there may be advanced calculator apps that are not called scientific or graphing calculator by the developers, I have done a search by functionality mentioned in the description also.
It is of course very difficult to predict which features a developer would choose to include in the description and what words would be used.
But if we only refer to functionality that is very important and popular, and consider alternative descriptions, we can expect to miss only few good apps, if any.
Choosing differentiation, equation solving, and graphing as such functionality, we arrive at a query like
Query 2: differentiate/derivative equation/algebra graph/plot
(Remember that App Finder equates different forms of a word. E.g., calculate also searches for calculator, differentiate also for differentiation, and integrate also for integration and integral.)
(With the simpler query derivative equation graph we miss two relevant apps, Wolfram Alpha and Algeo.)
Without filters, this query gives 264 results.
Again looking through the list and testing promising apps I found that all the best apps here probably have at least 4.2 stars average rating in the US, at least 1 million downloads for the free version, and were updated within the last two years.
With these filters, the query gives 14 results. Below you see the complete list ordered by “relevance”.
While I had to try some different keyword combinations and filters to arrive at this, the result is quite impressive:
The list probably includes all the best advanced calculator apps, no irrelevant apps, only few apps which I would not recommend, and the app that I would rate as the best overall is first in the list.
Spoiler: Result list
Additional searches
I have also repeated the query with -graph/plot instead of graph/plot to check if there are good advanced calculator apps without graphing, but this seems not to be the case.
I have searched for graphing apps specifically with graph/plot function trace and graph/plot function 3D. The latter query yielded 3 additional interesting 3D graphing apps (Grapher– Equation Plotter, Visual Math 4D, and Graphing Calculator 3D).
I have searched for CAS apps specifically with "computer algebra system", which yielded Maxima for Android and Xcas Pad.
Summary of the review and recommendations
Since the introduction of Android in 2008, independent programmers from around the world, as well as small and large companies, have developed hundreds of calculator apps (as we have seen, there are currently at least 432 apps with the phrase scientific calculator or graphing calculator in title or summary available on Google Play).
There is currently no single app with as comprehensive, reliable, and convenient calculation functionality as the best hardware calculators (like the TI-89, TI-Nspire, or Casio fx-CG500 / ClassPad).
However, for many purposes there are perfectly suitable apps, which are sometimes even preferable if one has a hardware calculator at hand (e.g., for graphing).
Note that there are also emulators available for Casio’s and HP’s flagship CAS calculators (but not TI’s), which however greatly suffer from emulation related problems.
For almost all purposes, a combination of the best native Android apps (e.g., Hiper Calc, GeoGebra, and WolframAlpha, see below), is probably the best choice.
Advanced general-purpose calculators
There seem to be essentially 3 advanced general-purpose calculator apps currently (see my definition above).
Of these, I would rate Hiper Calc as the best overall. Its numeric and symbolic calculation functionality is rather comprehensive and seems to be quite reliable. It is very easy to use and often very efficient. Important disadvantages are weaknesses with symbolic computation and small bugs, and very limited graphing.
Scientific calculator plus 991 has a more extensive calculation functionality than Hiper Calc (e.g. for statistics), and its symbolic calculation is more powerful in some areas (simplification and integration). However, it has some bugs and inconveniences, not all functionality is well organized and documented, and 3D graphing is missing.
(There are some very similar apps that may possibly be used instead of the Plus 991.)
Scientific Calculator by Philip Stephens may be chosen for 3D graphing (see below), some user interface advantages, and maybe for statistics. Its numeric calculation functionality seems to be good, but symbolic calculation is very limited. While the user interface has some great features, it also has significant issues, and documentation is missing.
Apps for difficult symbolic and numeric calculations
In general, WolframAlpha (based on the leading mathematics software Mathematica) can be recommended as the most powerful tool for difficult calculations on Android. It can also give further information on definitions and concepts, and often show intermediate calculation steps. However, it does not work offline, and expressions cannot be entered in textbook notation.
Maxima for Android is the long-established open-source computer algebra system Maxima with a command-line interface. Xcas Pad is another open-source computer algebra system with a command-line interface .
The best alternatives seem to be GeoGebra, Symbolab, and maybe Maple Calculator, which all support entry in textbook notation. GeoGebra works offline and is based on the open source CAS Xcas/Giac, but does not give intermediate calculation steps or further information. Symbolab and Maple Calculator often give intermediate calculation steps, but no further information.
For equation solving, Hiper Calc seems to work well also, but it has problems with simplification and symbolic integration. For symbolic integration, Plus 991 seems to work well also, but it has some bugs and problems with equation solving.
WolframAlpha sometimes shows the results in a more complicated form than other apps, and in one of my tests it did not return all minima of a simple function, while Hiper Calc did this. So, it may sometimes be a good idea to check with different apps.
Apps for graphing
For 2D graphing, Plus 991, Graphing Calculator + Math, Desmos, and GeoGebra are probably the best, with different advantages and shortcomings.
For 3D graphing, GeoGebra and Scientific Calculator by Philip Stephens seem to be clearly the best, also with different advantages and shortcomings.
GeoGebra and Graphing Calculator + Math may also be used as a “general-purpose calculator”, however the keys are quite small on phones for quick calculations.
Apps for longer complicated calculations and programming
MATLAB Mobile allows to create and execute MATLAB scripts in the cloud. MATLAB is a full-featured programming language, extensive numeric and symbolic calculation functionality is available, and 2D and 3D graphs can be created (but not navigated).
For tablets, a “notebook interface” is also available, where the code is placed on an interactive document together with the calculation results, graphics, and formatted text. While this concept is optimal for longer complicated calculations, there are serious problems with the interface of the app currently.
micro Mathematics is another calculator app with a notebook interface (for phones also). It seems to work reliably, however the input mechanism is quite inefficient, and symbolic computation and programming are missing.
GeoGebra and Graphing Calculator + Math also have kinds of (more limited) notebook interfaces.
Plus 991 seems to have a full-featured programming language, however there are significant issues currently.
Graphing Calculator (X84) includes TI-BASIC programming.
Scientific Calculator Scalar has limited scripting functionality.
The Casio fx-CG500 / ClassPad emulator might also be chosen for a “notebook interface” (eActivity) and for programming, however there are emulation related inconveniences.
The web-interface of SageMath might also be used, however it is quite inconvenient on phones.
An alternative would be to use a general programming environment with math libraries like SymPy, but this is beyond the scope of this review.
Apps for simple calculations
ChampCalc Scientific Calculator is a very sophisticated and customizable "basic" scientific calculator.
TechCalc Scientific Calculator includes formulas for many important mathematical, scientific, engineering, and financial applications.
Scientific Calculator Scalar allows to define custom functions easily, and has some scripting functionality.
Panecal Scientific Calculator may be very efficient for longer simple calculations.
CalcTastic has comprehensive base-n calculation functionality.
Graphing Calculator – Algeo and Jade Scientific Calculator have a simple and convenient user interface and some advanced features.
If more advanced features are needed, Hiper Calc can be recommended as the easiest to use advanced calculator.
Apps that imitate hardware calculators
Scientific calculator plus 991 has essentially the keyboard layout of the Casio fx-991 calculators, while being much more powerful.
Graphing calculator plus 84 83 has essentially the keyboard layout of the TI-84 calculators, while being much more powerful.
Graphing Calculator (X84) imitates the TI-84 quite closely, still making use of the touch-interface of Android devices.
If you find this review helpful, please read the note at the end of this page.
Introduction to the reviews of individual apps
I list all apps that looked promising to me from the store descriptions (as described in the section about the searches above, I have looked through several hundred apps).
For the apps that I would not recommend after testing, I only give the Play Store data and quickly explain the problems.
For the apps that I would recommend, I give screenshots and more information.
For apps that I would recommend for regular use, I give complete “feature lists”. For the others, I only note distinguishing features.
Reading the feature lists
In the feature lists, I take the “essential” (blue) features from the above lists as the baseline.
As advantages, I note especially good implementations and additional features. As disadvantages, I note bugs, bad implementations, and missing “essential” features. This may be a bit confusing, but I see no better way.
So, to make sense of the feature lists in the reviews, you must read the blue in the lists above.
If you are looking for apps with a specific feature, just use the search of you browser, all reviews are on this page.
I always review the full-featured and ad-free versions. For the good apps these are all available at a very fair (or more than fair) price.
Reading the Play Store data from App Finder
The numbers left of the colorful stars are the average user ratings calculated by Google Play, the top one for the United States, the bottom one the whole world.
The stars represent the rating distribution: The size (that is, area) of the stars is proportional to the number of 5-, 4-, 3-, 2-, and 1-star ratings (from green to red). Between different apps, the star-size is correlated with the total number of ratings at a logarithmic scale.
Paid apps without an indication do not contain ads. For apps with in-app purchases, the price range is shown in parentheses.
Advanced General-Purpose Calculators
Hiper Calc​
This app stands out with quite comprehensive, reliable, and powerful functionality, and an exceptional user interface.
It seems to be very good at equation solving and minima / maxima finding (however there also is a bug).
On the other hand, there are significant problems with simplification, more complicated integrals cannot be solved symbolically, and statistics is very limited.
Graphing is very limited but still useful.
The functionality is very well organized and efficient and easy to use, but it still has some inconveniences, see the feature list.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Already some easy simplifications are not done, e.g., ln(2)+ln(3) is not simplified to ln(6), and 2x/(x^2-1)-1/(x-1) is not simplified to 1/(x+1)
Bad In results, polynomials are always given in expanded form, which not always is the simplest one
Feature Factorization, but works only with one variable.
Equation solving:
BUG In some cases it incorrectly returns “No solution exists”, e.g., for sin(1/x) = 0, and for ln(x*y) = ln( y)
Feature Equation systems, entered one equation per line
Feature Inequalities
Good Apart from some special cases (see above), equation solving seems to work very well, and quite complicated equations and equation systems can be solved symbolically, and even more complicated ones numerically. Periodic solutions are handled well.
Differentiation and integration:
Bad Some more complicated integrals cannot be solved symbolically even if they are elementary, e.g. (e^x-1)/(e^x+1). Nonelementary integrals cannot be solved symbolically.
Other calculus and analysis:
Feature Symbolic minima and maxima, also for periodic functions.
Good It correctly found all minima of sin(1/x), what WolframAlpha did not
Statistics and probability:
Missing Only one-variable statistics
Bad Input of data is inconvenient, especially with frequencies.
Missing No regression
Feature High precision calculation with up to 100 digits significand and 9 digits exponent
2D and 3D graphing​
Missing Graphs are only shown in the “calculation details”, and only one graph can be drawn at a time (or two for equations)
Graph types:
Missing No parametric plots
Feature Implicit plots in 2D, but for equations involving periodic functions only one “branch” is shown, e.g. for sin(x+y) = 0
Display:
Good Both 2D and 3D graphs are high quality
Navigation:
Missing 3D: No complete navigation: Rotation only around z axis, inclination cannot be changed
Bad 3D: One must change between rotate and translate/zoom “modes” (one finger for rotate and 2 for translate/zoom would be more convenient)
Bad Equal / independent scale of axes in 3D does not to work well
Analysis:
Missing Tracing
Environment and user interface​
Variables and functions:
Feature Custom-named variables
Feature User-defined functions that can be used in numeric and symbolic calculations
However, note that variable names other than x and y and function names cannot be typed but must be inserted from a menu. Also, variables other than x and y must be defined in this menu before they can be used in symbolic computation. While this is an inconvenience, one may get used to it.
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied.
Missing No undo & Redo
Good Keyboard is well designed.
Bad Since recently, the equal sign must be selected from a menu.
Feature Automatic calculation without tapping enter key
Feature Good “Quick Info”
Adaption and customization:
Feature Tablet layout that makes good use of the space available (but only in landscape layout)
Feature Different predefined keyboard layouts and custom keyboard layouts
Feature Many high-quality themes
Bad For larger calculations (e.g. equation systems) the small display area is inconvenient. When the display text size is reduced, the display becomes also smaller (and the keys larger) so that no vertical space is won.
(When multi-line display is enabled the keys are much too small on phones. A solution is to define a custom keyboard with more columns which makes the keys smaller and thus the keyboard lower.)
Documentation and source​
Good There is a well-organized complete in-app help.
Scientific calculator plus 991​
This app stands out with very extensive and quite powerful calculation functionality.
However, it has some worrying bugs (see below).
Simplification and symbolic integration seem to be very good, but there are problems with equation solving and minima / maxima finding. Its statistics features are quite comprehensive.
2D graphing is good but has inconveniences. 3D graphing is missing.
The user interface is sophisticated, but some functionality is not well organized and documented, and there are many inconveniences.
Numeric and symbolic calculation​
Symbolic computation essentials:
Feature Domain constraints, but they are not exploited sometimes, e.g., Ln(x*y)-Ln(x) with x>0 and y>0 is not simplified to Ln( y). (Input: Simplify(Ln(x*y)-Ln(x), x>0 and y>0))
Equation solving:
BUG When trying to solve an equation by just entering it or using SHIFT-SOLVE, inexact results are often returned, e.g., for sin(x) = x, something like [x=-0.0000083, x=-0.0000017] is returned. Using the Solve function, [x=0] is correctly returned.
BUG Even with Solve, equations involving periodic functions are often not correctly solved, e.g.:
For sin(x) = 0 only 0 is returned as solution; for sin(x) = cos(x) two complicated (although correct) numerical expressions are returned instead of the simple exact solution.
For sin(x) = x/2, sometimes [x=-1.89…, x=1.89…], and sometimes [x=0] is returned.
Feature Equation systems
Differentiation and integration:
Good Powerful symbolic integration, even some nonelementary integrals can be solved with special functions, e.g., logarithmic and exponential integrals and Fresnel integrals (however these functions cannot be plotted).
Also, for complicated integrals like x/(1+sin(x)), for the same input, sometimes operation is not supported is returned, and sometimes the correct solution.
Other calculus and analysis:
BUG Minima and maxima are often not correctly calculated, e.g., for x^4-x^2, only x=-1/4 is returned as minimum, for periodic functions also only one minimum and maximum is returned.
Bad No one-sided limits
Statistics and probability:
It may take some time to learn to use the statistics features, but they seem to work quite well.
Bad Data editor shows no row numbers.
Feature Extensive distribution calculation functionality with many distributions (I did not test this much).
Feature Statistical tests (at least in the Plus 84 83, see below)
Feature Confidence intervals calculations (at least in the Plus 84 83)
Feature It has hundreds of advanced functions that are named as in WolframAlpha and Mathematica, e.g., Series, Fourier, PowerExpand, ApplySides(~600 documented, ~300 I could find in the menus). However,
I did not test them and don’t know if they work reliably.
The inconvenience of the interface (e.g., that parts of expressions cannot be copied, and that equation systems must be entered in one line) makes more complicated calculations tedious, so that I question the usefulness of many of them.
The functions cannot be typed, and there is no alphabetic list from which they can be inserted.
Feature Programming:
It seems to have a full featured programming language that can interface the calculation functionality (Symja). However, the print function and graphics output seem not to work (only the result for the last line is printed automatically). Also, files cannot be saved.
2D and 3D graphing​No 3D graphing.
Bad The functions to draw must be entered in linear form (i.e. not textbook form), or all in one line separated by :
Feature 3 workspaces
Graph types:
Feature Implicit plots
Display:
Bad Grid is quite coarse (and cannot be adjusted)
Navigation:
Feature Independent scale of axes
Bad No simultaneous pan and zoom with 2 fingers
Analysis:
Good Tracing is well implemented, tangent can also be shown
Good Derivative can also be shown, inflection points can also be shown
Environment and user interface​
Variables and functions:
Feature User-defined functions that can be used in numeric and symbolic calculations
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied
Missing No undo & Redo
Feature Automatic calculation without tapping enter key
Feature Good “Quick Info”
BUG When copying expressions from the history, it often returns incorrect results, even if it retuned the correct result the first time the expression was entered.
Missing No import / export
Adaption and customization:
UI is good for both small and large phones, but not tablets
Feature Many high-quality themes
Bad Not convenient for symbolic computation, e.g.,
Variable x and equal sign are not accessible with one tap
For most symbolic computation one must switch between the main and a 2nd keyboard, whose keys are not well organized
Equation systems must be entered in one line
Documentation and source​
Bad Help is not well organized
Feature Help can be searched (but not full-text)
Feature Function / command reference with search (but not full-text) and examples
Source: Although the developers do not state this, the app is based on the open source CAS Symja, “inspired by Wolfram Language built-in functions”, and implemented in Java.
Scientific Calculator 300 Plus,
Graphing calculator plus 84 83,
Scientific calculator 36 Plus,
Scientific calculator 30 34,
Calc 991 Scientific Calculator
These apps clearly share much code with the Plus 991, even if different developer names are used: Essentially all UI elements other than the keyboard are the same in each of them, and the Symja CAS library is also used (see above).
Thus, it can be expected that they share most of the advantages and disadvantages with the Plus 991.
The main difference seems to be that they are modeled and named after different Casio and TI calculators, and some have a more limited functionality.
Scientific Calculator 300 Plus seems to be essentially the same as the Plus 991.
Graphing calculator plus 84 83 has a significantly different layout, resembling the TI-84 often very closely. It may be better for statistics. Also, it has an alphabetical function catalog.
Below you see the first three.
Scientific Calculator (by Philip Stephens)​
This app stands out with very powerful 3D graphing and some important user interface features that are missing from most or all other calculator apps (see the feature list).
Numeric computation seems to be good, and the statistics and probability functionality is extensive.
Symbolic computation is very limited however.
There are great graphing features (e.g. implicit surfaces), but also problems with graphing.
While the user interface has some great features, it also has significant inconveniences. Documentation is missing, and many things are not obvious.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Calculation with exact values mostly does not work:
E.g, pi²/pi gives pi, but (pi²+pi)/pi already gives a decimal or is not simplified at all. Using the sym() function from sym-menu helps sometimes but not for more complicated expressions
Bad Similarly, expressions with variables are only simplified in very simple cases
Equation solving:
Bad The expected problems with simplification
Bad Equations with parameter variables cannot be solved
Feature Equation systems (up to 3 equations), but maximal one solution is shown
Feature Specification of variable range, but only for equations in one variable
Differentiation and integration
Bad Only very simple integrals can be solved symbolically. Integrating e.g. Ln(x)², or 1/(1+x)^2 returns “undefined”
Specific multiple / nested operations, but special templates must be selected
Other calculus and analysis
Missing No min / max finding,
Bad Sums and products of sequences only numeric
Bad Limits only numeric
Feature Taylor series
Matrices and vectors
Feature Vector calculus
Statistics and probability
(I did not test this much)
Missing No plots
Feature Confidence interval calculations
Feature Many statistical tests
Feature Many probability distribution calculations
Feature Random number generators for normal, Poisson, binomial distributions
2D and 3D graphing​
Graph types:
Missing No parametric surfaces
Feature Implicit plots with high quality
Feature Spherical, and cylindrical graphs
Feature “Inverse” and implicit plots also for polar, spherical, and cylindrical coordinates
Feature Inequality plots
Feature Complex plots where real and imaginary parts are shown in two separate 3d graphs.
In these plots it is however difficult to relate real and imaginary part, especially since rotation is not linked.
Feature Many special functions like Error and Gamma function can be used for graphing
Display:
Good Both 2D and 3D graphs are high quality
Good 2D: Grid with major and minor lines that adapts to zoom by fading lines in and out
Missing No landscape orientation
Navigation:
Feature Independent scale of axes
Good Individual translation in coordinate directions
Good Individual scale of coordinate axes by using two-finger-pinch on the axis-controls, this is not documented!
Bad No translation perpendicular to view-direction
Missing 3D: No equal scale of axes. Two-finger zoom does not work to change the drawing area.
Analysis:
Bad Tracing works very poorly
Environment and user interface​
Variables and functions
Only x, y, z can be used as variables. Additionally, there are 5 memories, and 5 constants can be defined.
Feature User-defined functions
Input and output:
This is the only app where parts of expressions can be selected and copied in textbook notation. This generally works as expected but could be improved. Pasting at a specific location is inconvenient or impossible because long-tap triggers selection.
Missing No undo/redo
Feature Automatic calculation without tapping enter key
Good Keyboard is well designed for numeric calculations
Bad History limited to 10 calculations
Missing No import / export
Adaption and customization:
Good Multi-touch display zoom
Feature Scalable keyboard
Feature Custom colors for all UI elements
Documentation and source​
Missing No help document, only a few hints when using some features for the first time.
Casio fx-CG500 / ClassPad Emulator​
This emulator of Casio’s flagship CAS calculator is clearly one of the most comprehensive and powerful calculator apps.
However, it greatly suffer from emulation related problems, e.g.
Graphs cannot be navigated with multitouch and are low-resolution.
Input of expressions is very inconvenient since the physical keyboard is not emulated, and one has to switch between different virtual keyboards often, which requires much tapping, and the keys are very small on phones.
HP Prime Emulator​
This emulator of HP’s flagship CAS calculator is not quite as comprehensive and powerful as Casio’s.
It shares with it most of the emulation-related problems like low resolution. While it supports multi-touch and the hardware keyboard is emulated, the display area is much smaller than Casio’s.
Graphing Tools
GeoGebra​
This app stands out with exceptional 3D graphing (however there are problems with implicit surfaces).
2D graphing is also good, but tracing is missing.
It may also be used as a “general-purpose calculator”, however the keys are quite small on phones for quick calculations.
Numeric and symbolic calculation seems to be very well in general, but there are problems with simplification, and statistics, scientific constants, and unit conversion are missing.
The user interface is sophisticated and intuitive to use. However, a complete user guide is missing, and some things are not obvious.
Note that GeoGebra consists of several apps (mainly Graphing Calculator, 3D Calculator, CAS Calculator, and Geometry), that are available as a suite or singly.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Some simple expressions are not simplified automatically, e.g., e^pi/e^(2pi), or e^x/e^(2x). The Simplify function does simplify them however.
Feature Factorization, expansion, substitution
Feature Domain constraints
Equation solving
Equation solving seems to be quite powerful in general, but there are some problems, e.g., sin(x)=x can only be solved numerically
Feature Equation systems
Feature Inequalities
Differentiation and integration
Good Symbolic integration is powerful, quite complicated elementary and nonelementary Integrals can be solved.
However there are sometimes problems with the simplification. (E.g., for the integral of x/(1+sin(x)), a very complicated expression is shown while the solution can be written much simpler. When differentiating the retuned solution, an even more complicated expression is shown, not the originally integrated expression)
Other calculus and analysis
Feature Taylor expansion
Feature First and second order ordinary differential equations solving, numeric and symbolic.
Matrices and vectors
Bad Matrices must be entered in linear form
Statistics and probability
Missing No statistics
Missing No regression
Feature Probability distribution calculator with graphical UI
Missing No base-n calculation
Missing No scientific constants and unit conversion
2D and 3D Graphing​
Graph types
Feature Implicit plots, however it does not draw more complicated implicit surfaces like 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley surface)
Feature Slope field plots for differential equations
Display
Feature 2D: Customizable grid with major and minor lines
Feature 3D: optional semitransparent x-y-plane and x-y-grid
Feature 3D: variable transparency and wireframe surfaces
Feature 3D: Orthographic and perspective projection
Feature Animation of parameter variables with sliders
Navigation
Feature 3D: Automatic (continued) rotation, parameters can be changed while the graph is rotating
Feature 3D: Augmented reality navigation
Analysis
Missing Tracing
Environment and user Interface​
Variables and functions:
Feature Custom-named variables for storing values and for use in symbolic computation
Feature User-defined functions that can be used in numeric and symbolic calculations
Feature Piecewise functions
Input and output:
Missing Parts of expressions cannot be selected and copied, only the whole input or result can be copied.
Feature Automatic calculation without tapping enter key
Feature GeoGebra is also available for iOS, Windows, macOS, Linux, and as web interface. Documents from one device can be saved to the cloud and opened on another.
Adaption and customization:
Bad The keys are quite small for phones
Good Quite optimal for tablets
Documentation and source​
Missing No complete user guide. This is a real problem since some things are not obvious.
Feature Function / command reference with search (but not full-text) and examples
Bad Help is fetched from the internet on demand and takes sometimes long to load (several seconds)
Open Source GeoGebra is essentially open source and uses the open-source CAS Giac/Xcas.
Desmos Graphing Calculator​
This app stands out with very good 2D graphing and “flexible” regression.
However, it has no 3D graphing and no advanced calculation functionality (Desmos Scientific Calculator also has no advanced calculation functionality).
Good Navigation is intuitive and very smooth.
Feature Animation of parameter variables with sliders.
Feature Regression is not limited to fixed functions as in most other calculators. E.g., for a logarithmic model, not only the function y = a+b*ln(x) can be used, but additional parameters can be used, e.g., y = a+b*ln(x-c).
Feature Also available for iOS and as web interface. Documents from one device can be saved to the cloud and opened on another.
It is very easy to use and has a good user guide.
Grapher – Equation Plotter​
This is a good 2D and 3D graphing app, however it has important disadvantages against, for example, GeoGebra and the app by Philip Stephens, e.g.
No “textbook notation”, and no keys for functions like sin(), they must be typed letter by letter
No implicit surfaces
When navigating in 3D, the graphs are updated only after the fingers are lifted
Feature It can draw complex functions using domain-coloring. Also, it can draw both real and complex parts for functions of a real variable.
Visual Math 4D​
This app can produce beautiful 3D graphs, however it has important disadvantages against GeoGebra and the app by Philip Stephens, e.g.
Variable ranges cannot be changed by touch-navigation
Implicit surfaces are not reliably drawn, the algorithm seems not to adapt to the selected variable ranges
Feature It can draw 3D vector fields.
Graphing Calculator 3D​
This is a 3D graphing app under development. It cannot currently be recommended because e.g.
Variable ranges cannot be changed by touch-navigation
Only one graph can be drawn at a time
Problems with Implicit surfaces
For complex plots, only one component is drawn at a time
No “textbook notation”, and no keys for functions like sin(), they must be typed letter by letter
CAS Answer Engines
WolframAlpha​
This app stands out with exceptional calculation capabilities and the possibility to show in-depth information on mathematical (and other) definitions, concepts, and data.
Intermediate calculation steps can often be shown.
Graphing is very limited but still useful.
The user interface is unique in that natural language can often be used to input problems.
Numeric and symbolic calculation​
Symbolic computation essentials
Feature Factorization and expansion
Feature Assumptions
Equation solving:
Feature Equation systems
Feature Specification of variable ranges
Feature Inequalities
Differentiation and integration
Good Very difficult integrals can be calculated. If the result involves special functions, these can be defined
Other calculus and analysis:
BUG Finding minima and maxima: For some (even easy) problems, it returns not all solutions, e.g., for minimize sin(1/x), it returns x = -2/(277pi)
Feature Taylor expansion
Feature Differential equations solving
Matrices and vectors:
Feature Vector calculus
Statistics and probability:
Feature Histograms and box plots
Feature Confidence intervals calculations
Feature Many statistical tests
Feature Many probability distribution calculations
2D and 3D graphing​
Graph types:
Implicit plots, but more complicated implicit surfaces like 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's cubic surface) cannot be drawn
Feature Complex plots, but not with domain-coloring
Display
Bad Plots are quite small and cannot be enlarged
Missing Navigation
Missing Analysis
Environment and user interface​
Bad Internet connection always required
Good Nevertheless, results appear very fast
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
Missing No input in textbook notation (however the web interface at wolframalpha.com has this possibility).
Missing No undo/redo
Feature Quick info
Adaption and customization:
Missing No dark theme
Documentation and source​
User guide seems not necessary
Feature Very many useful examples
Advanced Learning Calculators
Please note that as I said in the introduction, I evaluate also these apps only for their ability to efficiently solve mathematical problems, not for their pedagogical values.
Symbolab​
This app stands out with powerful symbolic computation and an easy-to-use and quite efficient interface.
Equation solving seems to work well, and many difficult integral can be calculated.
Intermediate calculation steps can often be shown.
3D graphing is missing and 2D graphing very bad.
Numeric and symbolic calculation​
Missing Polar coordinates for complex numbers seem not to be supported
Symbolic computation essentials:
Feature Factorization and expansion
Equation solving:
Bad Some simple equations cannot be solved, e.g. sin(x) = x/2.
Good Apart from some cases (see above), equation solving seems to work very well, also for periodic functions
Feature Equation systems
Feature Inequalities
Differentiation and integration:
Good Symbolic integration seems to be powerful, quite complicated elementary and nonelementary Integrals can be solved.
(the complicated integral of x/(1+sin(x)) is not well simplified)
Other calculus and analysis:
Bad Minima and maxima often cannot be calculated, e.g. for sin(1/x)
Missing For infinite sums, it only returns if it converges, not the value, e.g. for 1/n².
Feature Taylor expansion
Feature Differential equation solving
Missing No random numbers and prime factorization
Statistics and probability:
Missing Only one-variable statistics, no data editor
Missing Regression
Missing No Scientific constants and unit conversion
2D and 3D graphing​Missing No 3D graphing.
Missing Most important 2D graphing features are missing. Graphs are not always correctly drawn (try sin(1/x)). Navigation is juddery and inconvenient. Input of functions in the list does not work well.
There is also a separate app called Symbolab Graphing Calculator, but it does not work better.
Environment and user interface​
Bad Internet connection always required
Good Nevertheless, results appear very fast
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
The keyboard is quite well designed for phones and leaves a large area for the display. The fly-out keys work well.
Missing No copy and paste
Missing No undo/redo
Feature There is also an iOS app and a web interface. Problems can be synced across devices.
Adaption and customization:
Missing Display text size not adjustable
Documentation and source​
Missing No complete user guide
Feature Very many useful examples
Maple Calculator​
This app stands out with powerful symbolic computation and an easy-to-use and quite efficient interface.
Complicated integrals can be calculated, but there are sometimes problems with simplification. There are significant bugs and problems with equation solving. No calculation of minima and maxima.
Intermediate calculation steps can often be shown.
Graphing is very limited but still useful.
Numeric and symbolic calculation​
Symbolic computation essentials
Bad Expressions are not always displayed in the simplest form, e.g., for 2x^2=pi, it shows the positive solution as √(2)√(pi)/2 instead of √(pi/2) (although in the solution steps, it shows ±√(pi/2) as “intermediate step”)
Equation solving:
BUG Equations involving periodic functions are not correctly solved, e.g., for sin(x)=1/2, only one solutions is shown (i.e., not even all solutions between 0 and pi are shown), for sin(1/x)=0, it shows the empty set as solution
Feature Equation systems
Feature Inequalities
Differentiation and integration:
Good Powerful symbolic integration, nonelementary integrals can be solved with special functions, but no further information is given and no graph is shown. There are sometimes problems with simplification, e.g. for x/(1+sin(x)).
Other calculus and analysis:
Missing No minima and maxima finding
Feature Differential equation solving
Missing No base-n calculation
Missing No random numbers and prime factorization
Statistics and probability:
Missing No data editor
Missing No regression
Missing No scientific constants and unit conversion
2D and 3D Graphing​
Missing Only one 3D graph can be drawn at a time (in 2D, multiple functions must be entered in a vector)
Graph types:
Missing No polar plots, not parametric plots
Display
Missing No custom colors
Navigation
Missing Ratio of axes scale is set by the app and cannot be changed
Missing 3D: No complete navigation, graphs are drawn in a fixed variable range that cannot be adjusted
Missing No analysis features
Environment and user interface​
Bad Internet connection required for most calculations. Even for the simplest problems, it takes about 1 second until the results are shown, sometimes a bit longer.
Missing Values cannot be saved to variables
Feature Intermediate calculation steps
Input and output:
Good The keyboard is well designed for phones. It is quite efficient to use while leaving a large area for the display.
Missing No copy and paste (although there is a special mechanism to select parts of expressions)
Feature Automatic calculation without enter, even graphs are shown and updated automatically.
Feature Quick Info
Missing No history
Bad When the app is closed, previous calculation is not restored
Feature Calculations can be copied to desktop Maple (did not test this)
Adaption and customization:
Missing Text size cannot be adjusted
Missing No dark mode
Bad Sometimes the app enters fullscreen mode for no reason
Documentation and source​
Missing No user guide, just a FAQ that cannot be searched
Graphing Calculator + Math​
This app stands out with very good (although not optimal) 2D graphing, quite good 3D graphing, and some useful user interface features that are missing from most or all other apps.
Its calculation capabilities are quite limited however (e.g., simplifications are often not done, more complicated equations cannot be solved, no symbolic integration).
While the user interface has very useful features, it also has significant inconveniences.
The user manual is comprehensive and excellent for people just learning math.
Numeric and symbolic calculation​
Symbolic computation essentials:
Bad Limited calculation with exact values (e.g., logarithms are always evaluated numerically)
Bad Limited simplification, e.g. e^(x+1)/e is not simplified
(however, it simplifies 2x/(x^2-1)-1/(x-1) which Hiper does not simplify)
Feature Polynomials are displayed in both expanded and factored form
Equation solving:
Bad Equations involving periodic functions cannot be solved symbolically
Bad Equations with parameter variables cannot be solved
Feature Inequalities
Differentiation and integration
Bad For symbolic differentiation the simplification problems are an issue, e.g., the derivative of ln(√x) is given as 1/(2x^(1/2)* √x) instead of 1/(2x).
Missing No symbolic integration
Other calculus and analysis:
Bad Sums and products of sequences only numeric
Bad Limits only numeric
Statistics and probability
Missing Only 1 variable statistics, no data editor
Missing Only linear regression
Missing No bit-operations
2D and 3D graphing​
Missing In 3D, only one graph can be shown at a time
Feature Multiple workspaces
Graph types:
Feature Implicit plots in 2D and 3D.
Good Also more complicated implicit surfaces can be drawn, e.g. 4*(x^2+y^2+z^2)+16*x*y*z = 1 (Cayley's surface), which GeoGebra does not draw. However, Scientific Calculator by Philip Stephens draws implicit surfaces in much better quality.
Display
3D: Perspective projection only
3D surfaces display: Wireframe only
Navigation
Feature Independent scale of axes in 2D, well implemented.
Missing No simultaneous pan and zoom with 2 fingers
3D: Complete navigation, but not very efficient (and unusual)
Analysis
Good Tracing is well implemented, also “reverse” tracing with a horizontal line
Environment and user interface​
Variables and functions:
Feature Custom-named variables
Feature User-defined functions that can be used in numeric and symbolic calculations
Input and output
Bad Much functionality is hidden behind unlabeled keys (e.g., for integrals and derivatives, long-tap the x^n key!)
Missing Input of expressions in linear notation (simultaneously, they are displayed in textbook notation, which can also be tapped to position the cursor). The advantage over most other calculators is that parts of expressions can be selected and copied at least in this way.
Bad Very limited undo
Feature It has a limited “notebook interface” where elements can be rearranged and comments can be added.
Feature Multiple workspaces, however all variables and functions are shared
Adaption and customization:
The keys are quite small for phones (the keyboard can “resized” to fewer, larger keys, but then important functionality is missing).
Bad User interface does not adapt to different screen sized and orientations
Documentation and source​
Good The user manual is really comprehensive and excellent for people just learning math, available online and as PDF.
Photomath, ​
Mathway, ​
Microsoft Math Solver​
These apps are similar to Symbolab and Maple Calculator (they also recognize problems from photos and show step-by-step solutions), however their calculation capabilities seem to be more limited, as the following comparison shows.
SymbolabMaplePhotomathMathwayMicrosoftsolve sin(1/x) = 0correct not simplifiedwrong (empty set)xxcorrectsolve ln(x) = -xcorrectcorrectxcorrectxsolve sin(x) = x/2xonly 1 solutionxcorrectxsolve ln(x*y) = y*ln( y) for xcorrectcorrect not simplifiedxcorrect not simplifiedcorrectintegrate (e^x+1)/(e^x-1)correctcorrect not simplifiedcorrectxxintegrate x/ln(x)correctcorrectxxxintegrate 1/(1+sin(x))correctcorrectcorrectxcorrectintegrate x/(1+sin(x))correct not simplifiedcorrect not simplifiedxxx
HiEdu Scientific Calculator,​
Scientific Calculator He-580​
These apps may be good for learning math, however their capabilities are very limited, e.g.:
No symbolic computation
The equation solver can only give one solution
Graphing is limited to simple polynomials
Also, they hide status bar and action bar, and there seems no way to show them permanently.
Advanced calculators of other types
MATLAB Mobile​
This app allows to create and execute MATLAB scripts in the cloud.
Feature MATLAB is a full-featured programming language, extensive numeric and symbolic calculation functionality is available, and 2D and 3D graphs can be created (but not navigated).
The standard editor seems to work well and provides a custom keyboard, autocompletion, and syntax highlighting.
A command-line is also available.
Feature For tablets, a “notebook interface” is also available, where the code is placed on an interactive document together with the calculation results, graphics, and formatted text.
While this concept is optimal for longer complicated calculations, the app has serious issues with this currently. E.g., a stable internet connection seems to be always required while editing, the cursor cannot be moved with the arrow keys, and when text is selected, the keyboard disappears.
Already for working with the standard editor, the dependence on the cloud may be a disadvantage of course. Even with Wi-Fi, the connection gets lost from time to time, and one has to wait until the program is executed, or until one can continue editing.
Maxima on Android​
This is the long-established open-source computer algebra system Maxima (with roots going back to the 1960s) with a command-line interface.
Sadly, it was not updated since 2018, while Maxima is under continuous further development.
Features include
Autocompletion of commands
Results in LaTeX
2D and 3D graphs using Gnuplot (which cannot be navigated however )
User guide for Android and complete Maxima manual
Xcas Pad​
This is the open-source computer algebra system Xcas/Giac with a command-line interface.
Compared to Maxima, it lacks graphing and a user manual (a command reference is available).
Note that GeoGebra is based on Xcas/Giac.
micro Mathematics​
This is a calculator app with a “notebook interface”:
Feature Definitions of variables and functions, calculations, 2D and 3D graphs, text, and images can be placed on an interactive document.
While this concept is optimal for longer complicated calculations, the interface of the app is quite inefficient. For example, to enter sin(x)^2+1, you have to
Type sin(x
Long-tap sin
Type ^2
Long-tap sin
Tap the “expand selection” button
Type +1
(This could admittedly be done more efficiently by starting with the outermost operator, i.e. + in this case. But note that when modifying an expression, e.g. adding a summand, this will not work.)
The calculation and graphing capabilities are quite limited:
No symbolic calculation.
The equation solver cannot find more than one solution and does not work reliably.
Graphs cannot be navigated by touch, the variable ranges, and view angles for 3D, must be typed.
The z-range for 3D plot cannot be defined.
No implicit plots.
A good user manual is available.
Open Source, see here.
DYsolve Math Solver​
This is another calculator app with a “notebook interface”.
While expressions are typed in standard linear notation, which is faster than the method of micro Mathematics, there are serious problems currently, e.g.
Selecting, editing, placing and moving elements does not work well, and sometimes not at all
A bug on newer devices, the whole screen becomes blue sometimes and working on is not possible
The keys are very small on phones
The calculation and graphing capabilities are quite limited as well. I has a numeric solver for equation systems and ordinary differential equations (I did not test this), however
No symbolic calculation
3D graphs can be navigated using sliders only, which is inefficient, and view changes are not persisted
Z-range for 3D plot cannot be defined.
No implicit plots.
It is stated that it supports if/else blocks and for and while loops, however this is not described in the help and I did not find examples.
The app is aimed at engineering students, and there are worksheets for example problems available online.
I will include screenshots when the user interface is improved.
SMath Studio​
This is a further calculator app with a “notebook interface”.
It seems to support differential equation solving and programming, however the user interface is very limited, and I could not find out how to enter more complicated expressions.
TechCalc Scientific Calculator​
This is a uniquely comprehensive “multi-function calculator” with many specialized calculation modes for mathematical, scientific, engineering, and financial applications.
Feature It includes many important mathematical, mechanical, electrical, chemical, financial, and other formulas, ready for calculation. Further custom formulas can be added.
Feature It also has reference sections, e.g. differentiation & integration rules, statistics formulas, the periodic table, etc.
Feature There are several further useful features, it is appropriately called a "Swiss Army Knife".
While it has some advanced functionality like symbolic integration and 3D graphing, it is in general unsuitable for advanced mathematics:
The calculation functionality is distributed over many modes and sub-modes, e.g. for symbolic derivatives, numeric derivatives, symbolic integrals, numeric integrals, limits, etc.
Expressions involving derivatives, integrals etc. are not supported, so that for example the divergence or curl of a vector field cannot be calculated in one step.
Similarly, the graphing functionality is distributed so that for example a function graph and an implicit graph cannot be plotted together.
Further, textbook-style input is not supported, and editing expressions is inconvenient: To make changes in places other than the end, one must switch to an “edit mode” by long-tap, and switch back again before the result can be shown.
The interface is idiosyncratic, but well-organized comprehensive help is included.
Scientific Calculator Scalar​
This is a calculator app with a command-line interface, some advanced calculation features, some scripting functionality, and limited 2D graphing.
Feature Advanced calculation features:
Expressions can be saved to variables (“arguments”) and reference each other
Functions can be defined and can reference each other, also recursively
Variadic and piecewise functions can be defined
Sums and products with conditionals
“rep” statement for repetition with a fixed range of variable values
“if” function for simple alternatives
Very many special functions, like gamma, log-gamma, and digamma function, error function, etc.
Prime-counting function using the sieve of Eratosthenes, and approximations
Arbitrary-base numbers
Random variables for different ranges and distributions
Feature Scripts can be created, and the editor works well. However, the possibilities are quite limited since there are no flexible loops, no GOTO, and control structures cannot be nested.
Feature 2D graphing is well suited for discrete functions.
Otherwise, the calculation and graphing capabilities are quite limited:
No symbolic calculation
The equation solver cannot find more than one solution
Graphs cannot be navigated by touch, the variable ranges must be typed
(they can be zoomed and then moved by touch, but are not recalculated by this)
Only 3 functions can be drawn at a time
No parametric and implicit plots
No 3D graphing
The keyboard is quite well designed, with scrollable key rows. It is efficient for phones while leaving a large display area. However, it does not adapt to tablets.
The app is easy to use, and there are many in-app hints, examples, video tutorials, and a long user manual, which is quite repetitive however.
Source The expression parser is open source, see here.
Intermediate scientific and graphing calculators
I use the feature list for basic scientific calculators as baseline here (scroll down this post).
Graphing Calculator – Algeo​
This app has a simple user interface but some advanced features like 2D graphing.
The textbook-notation input and the always visible calculation history are very convenient.
Calculation:
Missing Random numbers, prime factorization, lcm
Feature Fractions
Feature Complex numbers
Feature Very limited equation solver (returns NaN for sin(x) = 1 and 1/x = -1)
Feature Symbolic differentiation, Numeric integration, Taylor series
Feature One variable statistics
Feature Calculation with units and unit conversion
Feature scientific constants
Graphing:
Feature 2D cartesian, polar, and parametric plots with tracing
Memories/variables, functions:
Bad Only 4 memories, saving is inconvenient
Input and output:
Feature Input in textbook notation
Feature Automatic calculation without tapping enter key
Number formatting:
Missing No custom number of decimal places
Jade Scientific Calculator​
This is another app with a simple user interface but some advanced features.
The textbook-notation input and the always visible calculation history are very convenient.
It has some useful customization options.
Calculation:
Missing Random numbers, prime factorization, gcd, lcm
Feature Calculation with exact expressions like fraction, roots, pi
Feature Simplification of expressions with variables
Feature Numeric and symbolic differentiation and integration,
1/(1+sin(x)), but not others
but no equation solving
Feature Complex numbers (rectangular)
Feature Scientific constants
Input and output:
Feature Input in textbook notation
Number formatting
Missing No custom number of decimal places
Adaption and customization
Feature Different keyboard sizes
Missing No user guide, and some things are not obvious
Graphing Calculator (X84)​
This app is designed to closely resemble the TI-84, while making use of the touch-interface of Android devices.
It seems to do this really well, but graphing could be implemented better.
Also, it seems to include virtually all functionality of the TI-84 calculators, including programming in TI-BASIC (but not Python).
Calculation:
Feature Complex numbers
Feature Calculation with fractions
Feature Base-n calculation
Feature Numeric equation solving (1 real variable)
Feature Numeric differentiation and integration
Feature Numeric minima and maxima finding
Feature Sums and products of sequences
Feature Matrix calculation
Feature Base-n calculation: conversion and bitwise operations for bases 2 to 16
Feature One and two variable statistics with histograms
Feature Statistical tests
Feature Probability distributions
Feature Confidence intervals
Feature Regression with plots
Feature Unit conversion
Feature Scientific constants
Graphing:
Feature 2D cartesian, polar, and parametric plots with tracing
Bad No equal-axes-zoom, no simultaneous pan and zoom with 2 fingers
Bad Quality is unnecessarily low (visible for functions like sin(1/x))
Bad Grid not adapting well to zoom
Programming
Feature TI-BASIC
Memories/variables, functions
Feature Saving expressions
Input and output:
Feature Input in textbook notation
Feature Undo & Redo
Bad Status bar is hidden and cannot be shown permanently
Feature Function / command reference
Class Calc Graphing & Statistics​
This app has a quite sophisticated interface, and statistics and regression seem to be implemented well.
However, it has serious bugs and problems, e.g.:
For the derivative of e^x, it returns something like (1196457)^-x*(32535443)^x (a fraction-approximation of e^x)
For the integral of 1/(1+sin(x)) it incorrectly returns ln(1+sin(X))
It seems not possible to solve equations
No complex numbers
Zooming of graphs does not work well
The web interface has the same problems.
NumWorks Emulator​
This is an emulator of a good intermediate scientific graphing calculator, however it is quite inconvenient since it supports input over the emulated keyboard only.
Scientific Calculator Advanced​
This app has some advanced features like 2D graphing, matrix calculations, and equation solving. However, the user interface is inconvenient for this functionality. Also the status bar is hidden and cannot be shown permanently.
Taculator Graphing Calculator​
This is another app designed to closely resemble the TI-84.
Serious problems are immediately evident:
Lag between tapping a key and the reaction, getting worse with using the app (restarting helps)
Entering 2π gives 23.1415…
2D graphing: when zooming, the graphs are not recalculated, so that they get jaggy.
(The iPhone version has fewer problems.)
Also, the lifetime Pro version costs $64 (against $2 / $4 for the best apps).
Basic scientific calculators​
I use the feature list for basic scientific calculators as baseline here (scroll down this post).
ChampCalc Scientific Calculator​
This is a very sophisticated and customizable basic scientific calculator.
Memory/variable management is better than in most advanced calculators. Also, it has advanced base-n calculation and a large and well-organized library of units and scientific constants. There is a comprehensive user guide.
Calculation:
Missing gcd, lcm
Feature Fractions
Feature Advanced base-n calculation for different integer sizes
Feature Complex numbers
Feature One variable statistics
Feature Many scientific constants
Feature Many unit conversions
Feature Large numbers and high precision with up to 100 decimals of significand
Memories/variables, functions:
Feature Memory and variables manager
Feature Storage of expressions
Input and output:
Feature Syntax highlighting and highlight of matching brackets
Feature Automatic calculation without tapping enter key
Number formatting
Feature Repeated decimals
Feature Quick info with prime factorization and value as fraction, mixed, DMS, Roman, BIN, OCT, HEX
Adaption and customization:
Feature Many useful settings like long-tap time
Feature Many high-quality themes and custom colors
Panecal Scientific Calculator​
This app may be very efficient for longer simple calculations.
In contrast to most other apps, parts of expressions can be selected and copied.
Calculation:
Missing Random numbers, prime factorization, gcd, lcm
Feature Base-n calculation
Feature Many scientific constants
Feature Many unit conversions
Input and output
Feature Parts of expressions can be selected and copied
Feature Large multi-line display
Scientific Calculator by CalcTastic​
This is a quite sophisticated basic scientific calculator with advanced base-n calculation and a stack-interface.
The always visible history is convenient, however, the cursor cannot be moved within the input, and copy and paste seems not to work, so previous calculations cannot be modified.
Calculation
Missing Prime factorization, gcd, lcm
Feature Advanced base-n bitwise and bit operations for different integer sizes
Feature Calculation with fractions
Feature Complex numbers
Feature One variable statistics
Feature Unit conversion
Feature Scientific constants
Memories/variables, functions
Missing Variables cannot be used in expressions (only value inserted)
Input and output
Missing Copy and paste does not work
Bad History, but inputs cannot be modified
Adaption and customization
Feature Special keyboard layout for tablets
Feature Many high-quality themes
MathsApp Graphing / Scientific Calculator​
This is a quite sophisticated scientific calculator with some advanced features.
The always visible history is convenient, however the keyboard seems to be unnecessarily small.
The price for the full version is quite high comparably.
Calculation
Feature Advanced base-n calculation for different integer sizes
Feature Complex numbers
Feature One variable statistics and Probability distributions
Feature Matrix calculation
Feature Scientific constants
Graphing:
Feature 2D cartesian and polar plots with display of coordinates of intersections, zeros, extrema, but no tracing
Feature Import / export of history
Adaption and customization
Missing No light theme
RealCalc Scientific Calculator​
This is a basic old-style one-line scientific calculator. Its more “advanced” features include result history, 10 memories, unit conversion and physical constants, and fraction calculation.
reserved
If this review was helpful to you, I would appreciate if you would check out App Finder.
The review was in this form only possible with it, and it will enable the creation of comprehensive reviews of other kinds of apps, by me or by other people.
Further, App Finder can help anyone to find Android apps with specific features easy, fast, and reliably, as I show here and in the following post. This will also help the developers of innovative high-quality apps that are not yet very popular.
Note that I provide this review and possible future reviews for free and without ads, and the essential functionality of App Finder is also free and without ads.
However, operating App Finder is quite expensive (since Google does not provide an API, the data must be scraped regularly, a page for each about 2.4 million apps for 180 countries = 430 million pages, plus more pages do discover new apps, which is about 73 TB of data. Further, a high-performance database server is needed to handle the search queries), and the creation of App Finder and this review obviously took a lot of time.
Therefore, I would appreciate a review on Google Play and the purchase of an App Finder Plus license, it would contribute to the operation and improvement of App Finder and the creation of other innovative high-quality software.

Categories

Resources