ADVERTISEMENT

Mobile apps through decades

Published Mar 4, 2024 01:01 pm

At A Glance

  • The article traces the history of mobile apps back to the 1980s when Personal Digital Assistants (PDAs) like the Apple Newton and Psion Organizer I introduced basic features, or what we now refer to as "apps," such as calculators, calendars, and note-taking tools.
  • In 1997, Nokia made history by introducing the first mobile game, Snake, which was pre-installed in the Nokia 6110. This marked the beginning of built-in features on mobile phones, with other manufacturers following suit by including games like Solitaire and Brick.
  • The article highlights the emergence of online app stores, starting with Japan's NTT DoCoMo launching i-mode in 1999, considered the first online app store for mobile phones. BlackBerry and others joined in, leading to the introduction of major platforms like the BlackBerry App World in 1999 and the Apple App Store and Android Market (now Google Play) in 2008.
  • As technology advanced, the article notes the seamless integration of apps with the internet, GPS, and other sensors. The evolution continued with the incorporation of technologies like AI, AR, and VR, enhancing the mobile app experience and making it more immersive and personalized. The article expresses anticipation for future developments as technology continues to advance.
Screenshot 2024-02-17 at 4.54.29 PM.png

 

Did you know that mobile apps have a history that goes all the way back to the 1980s? It was the age when handheld devices such as the Apple Newton, and Psion Organizer I were very popular.   These PDAs or Personal Digital Assistants just started to emerge offering basic features (as they called it back then) or "apps" (as we call them today) like calculator, calendars and note-taking tools.   

Just like PDAs, the Motorola Dynatac 8000x was the first mobile phone with built-in features.  In 1997, Nokia introduced the first mobile game, Snake.  The game was pre-installed in the historic Nokia 6110 - the first GSM mobile phone to use the ARM processor.  Other phone manufacturers then followed suit and had built-in features and game apps like Solitaire and Brick.

The rise of the internet paved the way for WAP (Wireless Application Protocol) apps.  Working with limited bandwidth, mobile phones only allowed basic web app experiences mainly for news and sports. 
 

It was in 1999 in Japan when NTT DoCoMo launched i-mode, considered the first online app store for mobile phones.   Functioning through a dedicated online store, the so-called "apps" were downloadable but notably simpler than what we have today.

The same year, BlackBerry launched its app store - the BlackBerry App World.  Then in 2008, the Apple App Store and the Android Market (now Google Play) were introduced.  Suddenly, users had a treasure trove of apps for their devices.  App innovation grew as a result of tight competition between app stores.  

With advancements in technology, apps then became seamlessly integrated with the internet, GPS and other sensors; then now with AI, AR and VR making the experience more immersive and personalized.  

Now, it is just amazing how there's an app for pretty much anything you could possibly need or be interested in. Starting from simple feature tools that evolved to multifaceted functions, the evolution of mobile apps has been dramatic.  Can't wait to see what the future holds as technology continues to advance. 

ADVERTISEMENT
.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1561_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1562_widget.title }}

.most-popular .layout-ratio{ padding-bottom: 79.13%; } @media (min-width: 768px) and (max-width: 1024px) { .widget-title { font-size: 15px !important; } }

{{ articles_filter_1563_widget.title }}

{{ articles_filter_1564_widget.title }}

.mb-article-details { position: relative; } .mb-article-details .article-body-preview, .mb-article-details .article-body-summary{ font-size: 17px; line-height: 30px; font-family: "Libre Caslon Text", serif; color: #000; } .mb-article-details .article-body-preview iframe , .mb-article-details .article-body-summary iframe{ width: 100%; margin: auto; } .read-more-background { background: linear-gradient(180deg, color(display-p3 1.000 1.000 1.000 / 0) 13.75%, color(display-p3 1.000 1.000 1.000 / 0.8) 30.79%, color(display-p3 1.000 1.000 1.000) 72.5%); position: absolute; height: 200px; width: 100%; bottom: 0; display: flex; justify-content: center; align-items: center; padding: 0; } .read-more-background a{ color: #000; } .read-more-btn { padding: 17px 45px; font-family: Inter; font-weight: 700; font-size: 18px; line-height: 16px; text-align: center; vertical-align: middle; border: 1px solid black; background-color: white; } .hidden { display: none; }
function initializeAllSwipers() { // Get all hidden inputs with cms_article_id document.querySelectorAll('[id^="cms_article_id_"]').forEach(function (input) { const cmsArticleId = input.value; const articleSelector = '#article-' + cmsArticleId + ' .body_images'; const swiperElement = document.querySelector(articleSelector); if (swiperElement && !swiperElement.classList.contains('swiper-initialized')) { new Swiper(articleSelector, { loop: true, pagination: false, navigation: { nextEl: '#article-' + cmsArticleId + ' .swiper-button-next', prevEl: '#article-' + cmsArticleId + ' .swiper-button-prev', }, }); } }); } setTimeout(initializeAllSwipers, 3000); const intersectionObserver = new IntersectionObserver( (entries) => { entries.forEach((entry) => { if (entry.isIntersecting) { const newUrl = entry.target.getAttribute("data-url"); if (newUrl) { history.pushState(null, null, newUrl); let article = entry.target; // Extract metadata const author = article.querySelector('.author-section').textContent.replace('By', '').trim(); const section = article.querySelector('.section-info ').textContent.replace(' ', ' '); const title = article.querySelector('.article-title h1').textContent; // Parse URL for Chartbeat path format const parsedUrl = new URL(newUrl, window.location.origin); const cleanUrl = parsedUrl.host + parsedUrl.pathname; // Update Chartbeat configuration if (typeof window._sf_async_config !== 'undefined') { window._sf_async_config.path = cleanUrl; window._sf_async_config.sections = section; window._sf_async_config.authors = author; } // Track virtual page view with Chartbeat if (typeof pSUPERFLY !== 'undefined' && typeof pSUPERFLY.virtualPage === 'function') { try { pSUPERFLY.virtualPage({ path: cleanUrl, title: title, sections: section, authors: author }); } catch (error) { console.error('ping error', error); } } // Optional: Update document title if (title && title !== document.title) { document.title = title; } } } }); }, { threshold: 0.1 } ); function showArticleBody(button) { const article = button.closest("article"); const summary = article.querySelector(".article-body-summary"); const body = article.querySelector(".article-body-preview"); const readMoreSection = article.querySelector(".read-more-background"); // Hide summary and read-more section summary.style.display = "none"; readMoreSection.style.display = "none"; // Show the full article body body.classList.remove("hidden"); } document.addEventListener("DOMContentLoaded", () => { let loadCount = 0; // Track how many times articles are loaded const offset = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]; // Offset values const currentUrl = window.location.pathname.substring(1); let isLoading = false; // Prevent multiple calls if (!currentUrl) { console.log("Current URL is invalid."); return; } const sentinel = document.getElementById("load-more-sentinel"); if (!sentinel) { console.log("Sentinel element not found."); return; } function isSentinelVisible() { const rect = sentinel.getBoundingClientRect(); return ( rect.top < window.innerHeight && rect.bottom >= 0 ); } function onScroll() { if (isLoading) return; if (isSentinelVisible()) { if (loadCount >= offset.length) { console.log("Maximum load attempts reached."); window.removeEventListener("scroll", onScroll); return; } isLoading = true; const currentOffset = offset[loadCount]; window.loadMoreItems().then(() => { let article = document.querySelector('#widget_1690 > div:nth-last-of-type(2) article'); intersectionObserver.observe(article) loadCount++; }).catch(error => { console.error("Error loading more items:", error); }).finally(() => { isLoading = false; }); } } window.addEventListener("scroll", onScroll); });

Sign up by email to receive news.