<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>platform &#8211; Airtame</title>
	<atom:link href="https://airtame.com/blog/tag/platform/feed/" rel="self" type="application/rss+xml" />
	<link>https://airtame.com/</link>
	<description>Wireless screen mirroring and digital signage &#124; Airtame</description>
	<lastBuildDate>Mon, 13 Jul 2026 20:28:23 +0000</lastBuildDate>
	<language>en-US</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.0.1</generator>

<image>
	<url>https://airtame.com/wp-content/uploads/2018/06/cropped-airtame-logo-1-32x32.png</url>
	<title>platform &#8211; Airtame</title>
	<link>https://airtame.com/</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>Cross-platform computer applications in practice</title>
		<link>https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/</link>
		
		<dc:creator><![CDATA[Airtame]]></dc:creator>
		<pubDate>Wed, 06 Jan 2016 14:29:50 +0000</pubDate>
				<category><![CDATA[Engineering]]></category>
		<category><![CDATA[applications]]></category>
		<category><![CDATA[coding]]></category>
		<category><![CDATA[electron]]></category>
		<category><![CDATA[framework]]></category>
		<category><![CDATA[platform]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=1029</guid>

					<description><![CDATA[<p>From the very beginning, cross-platform capability has been one of our standard requirements at Airtame. It is our ultimate goal for users to be able to stream from any platform at any time. But how can we actually accomplish cross-platform capability? Currently, we have 3 full-time engineers from the Airtame team dedicated to making a truly cross-platform [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/">Cross-platform computer applications in practice</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>From the very beginning, cross-platform capability has been one of our standard requirements at Airtame. It is our ultimate goal for users to be able to stream from any platform at any time.</p>
<p>But how can we actually accomplish cross-platform capability? Currently, we have 3 full-time engineers from <a href="https://airtame.com/blog/why-join-the-airtame-engineering-tribe/">the Airtame team</a> dedicated to making a truly cross-platform streaming solution. Let’s go over how we make it happen.</p>
<h2 id="starter-kit">Starter Kit</h2>
<p>When we started this project 2 years ago, we had just one engineer working on this task. However, limited resources allocated to this project in an early phase have helped us to determine a solution that will be most efficient and proven out of all the tools available for this purpose.</p>
<p>During the selection process, we were driven by the following criteria in order to find the perfect framework for Airtame cross-platform capability:</p>
<ul>
<li>The framework has to be able to run another executable (the streaming binary)</li>
<li>It has to be able to communicate with the discovery module (the piece of software that allows us to see all the Airtames on the network)</li>
<li>It has to run on Windows 7+, MacOS X 10.8+ and as many UNIX systems as we can</li>
<li>It has to have access to the filesystem of the OS</li>
<li>Ability to design our own User Interface</li>
<li>Proven track record (number of companies using it already)</li>
<li>Active community and support for the framework</li>
</ul>
<p>When we were making the initial choice 2 years ago &#8211; <a href="http://qt.io/" target="_blank" rel="noopener">QT</a> made most sense to us. It has a fairly good UI library and we could develop it using C++. However, the main drawback of this solution was that implementing the UI was quite cumbersome, especially if you are new to this framework.</p>
<p>In parallel, we noticed <a href="http://nwjs.io/" target="_blank" rel="noopener">nw.js</a> (formerly node-webkit) rising as a technology of choice when developing cross-platform UI application. Main advantage? You write your UI as you would write a website &#8211; in a controlled environment! No need for multi-browser compatibility.</p>
<p>We decided to try nw.js. It worked well for us. We managed to write everything for all platforms in only one (-ish) codebase, the whole thing being written in HTML/CSS/JS with <a href="https://nodejs.org/en/" target="_blank" rel="noopener">NodeJS</a>. The nw.js’s community was quite active and many other companies were using it, so it had a proven track record and it was fairly easy to troubleshoot.</p>
<p>However, we started to spot some limitations of nw.js over time. The project was not updated that often, we could see some bugs (many Linux issues, frameless window issues, etc.), and we were missing features that were important to us (e.g., auto-updater and balloon notification on Windows).</p>
<p>Around the end of June 2015, we had an important backlog of features and bugs that were hanging because of this.</p>
<p>That’s when we decided to take a look at <a href="http://electron.atom.io/" target="_blank" rel="noopener">Electron</a> (formerly atom-shell).</p>
<h2 id="electron">Electron</h2>
<p>Electron is in fact very similar to nw.js. It uses the latest version of NodeJS and allows you to write cross-platform applications using web technologies (if you want to know more about the differences between Electron and nw.js, just follow <a href="http://electron.atom.io/docs/v0.35.0/development/atom-shell-vs-node-webkit/" target="_blank" rel="noopener">this link</a>.)</p>
<p>Nevertheless, Electron is updated more frequently, it is heavily adopted, and apparent bugs can be fixed quickly by either support from the community or the official maintainers. Moreover, Electron has more functionalities than nw.js (platform specific or not). All of that brings us closer to implementing the best user experience.</p>
<p>One of the main advantages of the Electron framework is that it provides core functionalities useful to almost every software: Auto update, Crash reporter, installer creation, system-specific features, etc.</p>
<h3 id="architecture">Architecture</h3>
<p>Today, the architecture of the Airtame software is designed as follows:</p>

      <div
         class="air-image  air-image--large"
        
      >
        <img fetchpriority="high" decoding="async" class="alignnone size-full wp-image-1032" src="/wp-content/uploads/2016/01/cross-platform-engineering-1-2.png" alt="" width="1650" height="1275" /><div class="air-image__caption">High-level architecture of the Airtame software on a computer. It highlights the separation in modules, which is at the heart of our software.</div>
      </div>
    
<p>Main advantages of the above architecture are as follows:</p>
<ul>
<li>Have different release process for each “module”</li>
<li>Have a clear division of responsibility in the code</li>
<li>Be able to replace any module easily without impacting the rest of the application</li>
<li>Provide an HTTP API that other applications can talk to</li>
<li>Make the testing easier. During the development phase, we can test the front-end directly in Google Chrome if the server is running. On the other hand, it is easier to mock the API of the core functionalities of Electron (like window management and other system-related SDK)</li>
</ul>
<h3 id="testing">Testing</h3>
<p>We have divided the automatic testing into 4 stages:</p>
<ul>
<li>Stage 1: All of the node modules tested separately (node-airtame and node-discovery)</li>
<li>Stage 2: Front-end of the application</li>
<li>Stage 3: Back-end of the application</li>
<li>Stage 4: The application as a whole &#8211; we have integration and functional tests to verify the functionality of a full feature or scenario (still at an early stage)</li>
</ul>
<p>We chose <a href="https://mochajs.org/" target="_blank" rel="noopener">Mocha</a> for the testing job and we are happy with it. Every time we submit a change, the tests are triggered in order to validate that there was no regression and that the application is still working as expected. If the test fails, you will be unable to merge the change.</p>
<p>When it comes to the manual testing, we have a “QA” corner in the office along with a set of physical machines and VMs allowing us to test the user case in a real environment. The QA corner is composed of a large variety of systems:</p>
<ul>
<li>Windows (7, 8.1, 10)</li>
<li>MacOS (10.8, 10.9, 10.10.5, 10.11)</li>
<li>Ubuntu (14.04, 15.04, 15.10)</li>
</ul>
<p>We are currently working on having even more systems set up through Virtual Machine and other physical devices in order to make Airtame the most cross-platform friendly application.</p>

      <div
         class="air-image  air-image--large"
        
      >
        <img decoding="async" class="alignnone size-full wp-image-1033" src="/wp-content/uploads/2016/01/cross-platform-engineering-2-2.jpg" alt="" width="2048" height="1152" /><div class="air-image__caption">Our QA corner where we manually test the software and dongle. We have different hardware and virtual machines in order to cover as many cases as we can.</div>
      </div>
    
<h2 id="whats-next">What’s next</h2>
<p>We will continue to follow the Electron evolution process. We are planning to take a proactive role by contributing to the development of the framework ourselves.</p>
<p>We will continue focusing on stability and usability of the application. The new architecture of the software will help us to write more tests and to divide even more clearly the responsibility of each component. We are also internally improving our QA process (which will be a part of a future post on our QA process).</p>
<p>We are also listening to our users and we are trying to adapt and fix the issues to always provide the best experience.</p>
<p>Finally, we plan to Open Source the application. We are thrilled about this idea and we will keep you posted about its development.</p>
<p>If you want to download the software, follow <a href="https://airtame.com/download">this link</a>.</p>
<h5>We’re always on the lookout for talented engineers who are passionate about writing clean, maintainable code! If this sounds like you, get in touch with us at <a href="mailto:tech-jobs@airtame.com">tech-jobs@airtame.com</a>.</h5>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/how-electron-helps-airtame-to-provide-a-crossplatform-software/">Cross-platform computer applications in practice</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
		<item>
		<title>Mobile in focus</title>
		<link>https://airtame.com/blog/wireless-mobile-streaming/</link>
		
		<dc:creator><![CDATA[Jonas Gyalokay]]></dc:creator>
		<pubDate>Sat, 07 Mar 2015 10:41:06 +0000</pubDate>
				<category><![CDATA[Updates]]></category>
		<category><![CDATA[android]]></category>
		<category><![CDATA[iOS]]></category>
		<category><![CDATA[mobile]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[software]]></category>
		<guid isPermaLink="false">https://32e994dd1033e2d92dbce-admin.hardypress.com/?p=1098</guid>

					<description><![CDATA[<p>In the past couple of weeks, we’ve made a lot of good progress with the mobile platforms, so we’ve got an update for you entirely on this topic alone! iOS Since the launch of the iOS app, we’ve now added .pdf support and the ability to stream images and documents directly from your applications. This [&#8230;]</p>
<p>The post <a rel="nofollow" href="https://airtame.com/blog/wireless-mobile-streaming/">Mobile in focus</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></description>
										<content:encoded><![CDATA[<p>In the past couple of weeks, we’ve made a lot of good progress with the mobile platforms, so we’ve got an update for you entirely on this topic alone!</p>
<h2 id="ios">iOS</h2>
<p>Since the launch of the iOS app, we’ve now added .pdf support and the ability to stream images and documents directly from your applications. This means that you’ll be able to grab a .pdf document or image directly from Dropbox / Google Drive / One Drive and be able to stream to your monitor in a couple of clicks:</p>
<p>It’s also got a shiny new mobile presentation mode that turns your mobile device into a handheld presentation remote, along with a handy timer so you can see what stage you are in your presentation at a single glance:</p>
<h2 id="android">Android</h2>
<p>Android has gone from v0.5.3 to v0.5.6. What does that mean you ask? Here’s an overview of the features and fixes:</p>
<ul>
<li>Pinch and zoom</li>
<li>Launch AIRTAME from other apps</li>
<li>Native PDF conversion</li>
<li>Streaming progress indicator</li>
<li>Adaptation for 10” tablets</li>
<li>Direct IP connection</li>
</ul>
<p>You’re now able to open up .pdf files and images from your applications as with the iOS app, but in Android you’ve also got a built-in Dropbox functionality, that enables you to view and search through your content directly within the AIRTAME application. This is how it eventually will work on all mobile platforms, so you easily can browse around in your favourite storage services and stream content from within the AIRTAME application directly – at the moment you’ll have to “live” with going into each relevant application directly and then selecting which documents you’ll like to stream to the AIRTAME.</p>
<p>We’re constantly working on getting the details in the user flow right. Our focus is to create the smoothest process possible and create the small “oh that’s cool” (or “oh là là” moments as Benoit would say) when streaming your presentations and images.</p>
<h2 id="have-a-cool-idea-to-better-the-experience">Have a cool idea to better the experience?</h2>
<p>Join the conversation and our community at <a href="https://forum.airtame.com/" target="_blank" rel="noopener">forum.airtame.com</a></p>
<p>For the next step (and natural evolution) we’re working on a way to get your other media (videos etc.) via the application to stream directly. It will be the case as usual where we’ll stage the development over the different updates, starting with local/native media support and then move up from there, but more about that in another update 🙂</p>
<p>To find the applications, you can follow the links below: <a href="https://itunes.apple.com/dk/app/airtame/id953970545?mt=8" target="_blank" rel="noopener">iOS</a> <a href="https://play.google.com/store/apps/developer?id=AIRTAME" target="_blank" rel="noopener">Android</a></p>
<p>Until next time – happy streaming!</p>

<p>The post <a rel="nofollow" href="https://airtame.com/blog/wireless-mobile-streaming/">Mobile in focus</a> appeared first on <a rel="nofollow" href="https://airtame.com/">Airtame</a>.</p>
]]></content:encoded>
					
		
		
			</item>
	</channel>
</rss>
