Tag Archives: facebook

Apple plans to disable Facebook web tracking capabilities

Apple plans to disable some Facebook web tracking capabilities in the next version of iOS and Mac operating systems.

At the Apple Worldwide Developers Conference (WWDC), the company’s senior vice president of software engineering Craig Federighi explained the new antitracking features that will be rolled out in the next iteration of Apple’s web browser Safari. The features are meant to prevent Facebook and other companies from collecting user data automatically.

Specifically, Federighi called out the “Like” and “Share” buttons that appear on countless websites. In order to use either of those buttons, or leave a comment in the comments section, the user has to be logged into Facebook. But even if the user doesn’t click on the buttons, they can still be used to track that person just because they loaded the webpage.

“We’ve all seen these like buttons and share buttons,” Federighi said on stage at WWDC. “Well, it turns out these can be used to track you, whether you click on them or not. So this year, we’re shutting that down.”

With the Facebook web tracking features disabled, Safari users will see a pop-up on sites with the Facebook buttons that will ask if they want to allow ‘facebook.com’ — or any other site with web trackers enabled — to use cookies and website data. Users will be able to opt out of tracking and keep their browsing activity private. Safari will change how it loads websites so that it requires users to consent to their data being tracked.

Facebook web tracking was called out specifically by Federighi, but Google has similar tracking abilities and will also be affected. Both Facebook and Google use web tracking to deliver targeted ads to users and collect data.

In the next version of the macOS Mojave, Apple will also disable what it calls “fingerprinting” by data companies. The companies collect information on the configuration of a particular device, including the fonts it has installed and the plug-ins that are enabled, to create a unique device profile and then use that to track the device from site to site.

“With Mojave, we’re making it much harder for trackers to create a unique fingerprint,” Federighi said. “We’re presenting webpages with only a simplified configuration system. We show them only built-in fonts. And legacy plug-ins are no longer supported, so those can’t contribute to a fingerprint. And as a result, your Mac will look like everyone else’s Mac, and it will be dramatically more difficult for data companies to uniquely identify your device and track you.”

These are not the first steps Apple has taken to reduce web tracking. At the 2017 WWDC, the company introduced Intelligent Tracking Prevention, which limited the capabilities of third-party trackers and their use of cookies. However, this is the first time Apple has directly called out and taken steps to prevent tracking by Facebook and Google specifically.

In other news

  • The U.S. Department of Defense (DoD) is looking to purchase and set up a cloud browser for its employees. According to a request for information (RFI) from the Defense Information Systems Agency, the DoD intends to have its 3.1 million employees move to a cloud browser because the department believes it would be more secure to have employees browse the web via a remote server that operates outside the DoD network than to have it happen on their own devices. This is a technique the RFI called “cloud-based internet isolation” and has been gaining interest among enterprises. In 2017, security company Symantec acquired the company Fireglass with the intention of bolstering its browser isolation capabilities.
  • The email and password data of 92 million users of the genealogy website MyHeritage was exposed in a data breach, according to the company. A security researcher found a file named ‘myheritage’ on a private server not connected to MyHeritage that contained the email addresses and hashed passwords of users who had signed up before October 26, 2017, which is the date of the data breach. In a statement, MyHeritage said that the hackers don’t have the actual passwords and there was no evidence that any of the information had been used. “We believe the intrusion is limited to the user email addresses. We have no reason to believe that any other MyHeritage systems were compromised,” the blog post MyHeritage said credit card data is stored with third-party providers and actual DNA and family-related data are all on segregated systems, so they weren’t affected by the breach.” We have no reason to believe those systems have been compromised.”
  • The malware VPNFilter targets more devices than previously thought, according to updated research from Cisco Talos. VPNFilter was previously found to be infecting small office and home office routers and network-attached storage devices from several different vendors. Now, the researchers at Cisco Talos believe the malware is targeting more makes and models of those devices, and doing so with additional capabilities. New vendors now affected by VPNFilter are Asus, D-Link, Huawei, Ubiquiti, Upvel, ZTE, Linksys, MikroTik, Netgear and TP-Link. VPNFilter also now has the ability to deliver exploits to endpoints using a man-in-the-middle attack. “With this new finding, we can confirm that the threat goes beyond what the actor could do on the network device itself, and extends the threat into the networks that a compromised network device supports,” Cisco Talos’ William Largent wrote in the blog post detailing the new findings.

Microsoft and Facebook disrupt ZINC malware attack to protect customers and the internet from ongoing cyberthreats – Microsoft on the Issues

Last week Microsoft, working together with Facebook and others in the security community, took strong steps to protect our customers and the internet from ongoing attacks by an advanced persistent threat actor known to us as ZINC, also known as the Lazarus Group. We concluded that this threat actor was responsible for WannaCry, a destructive attack in May that targeted Microsoft customers. Among other steps, last week we helped disrupt the malware this group relies on, cleaned customers’ infected computers, disabled accounts being used to pursue cyberattacks and strengthened Windows defenses to prevent reinfection. We took this action after consultation with several governments, but made the decision independently. We anticipate providing more information about our actions and their effect in the coming months once we have had the opportunity to analyze applicable data and information.

Today, the governments of the United States, United Kingdom, Australia, Canada, New Zealand and Japan have all announced that the government of North Korea is responsible for the activities of ZINC/Lazarus. We are pleased to see these governments making this strong statement of attribution. If the rising tide of nation-state attacks on civilians is to be stopped, governments must be prepared to call out the countries that launch them. Today’s announcement represents an important step in government and private sector action to make the internet safer.

Microsoft welcomed the opportunity to work with Facebook and others in recent weeks to address this issue. As we look to 2018, it’s essential that we act with shared responsibility to strengthen further the partnerships with the security community and governments to combat cyberattacks against civilians. There is much we can build on from our longstanding work with private industry partners, Interpol, Europol, the FBI and other law enforcement agencies in our ongoing efforts to combat botnets and other cybercrime.

Tags: Brad Smith, cybersecurity, malware

Facebook Workplace partners team to boost platform uptake

Two Facebook Workplace partners are teaming up to accelerate the adoption of the social media giant’s enterprise collaboration platform.

Talk Social to Me, based in Mill Valley, Calif., and ServiceRocket, based in Palo Alto, Calif., have launched Elevate, a program the companies said targets deskless workers in regulated industries. Talk Social to Me will contribute consulting services in such fields as compliance management, spontaneous conversation trends and influencer coaching, while ServiceRocket will provide its proprietary Moderation and Insights application.

Facebook Workplace partners have been upping their investment in the platform in recent months, with the Elevate service being one of the more recent examples. Facebook said it has 30,000 companies using Workplace by Facebook, which the company launched in October 2016. The company unveiled a partner program at that time.

Carrie Basham Young, CEO and founder of Talk Social to Me, said ServiceRocket’s Moderation offering is a customizable off-the-shelf application. The application lets enterprises set keyword monitors and velocity controls, which alert administrators when a particular conversation generates a lot of reaction in terms of comments or shares. Young said the administrators could be Workplace community managers or executives in charge of a particular employee group within a company.

Talk Social to Me, meanwhile, will help build ServiceRocket’s moderation tool into an enterprise’s crisis communication plan or community management plan, Young said. She added the company will also teach organizations how to respond to critical conversations, whether they are positive or negative.

Carrie Basham Young, CEO and founder at Talk Social to MeCarrie Basham Young

Young said the Elevate program could apply to any company that seeks to have better insight into organizational conversations. She said the industries that could prove the best fit for the program include retail, healthcare and manufacturing. In those segments, she said, “you have a majority of employees who don’t sit at a desk all day” and may rely on union leaders or local managers to convey information from headquarters.

Young said her company and ServiceRocket had previously connected several times around shared customers, with each company providing different services. The Elevate announcement, she said, formalizes that partnership and go-to-market strategy.

Logicworks rolls out cloud monitoring tool

Logicworks, a cloud and managed service provider (MSP) based in New York, is rolling out a cloud monitoring service that integrates with Amazon Web Services and Microsoft Azure.

[The Elevate program suits industries such as retail, healthcare and manufacturing where] you have a majority of employees who don’t sit at a desk all day.
Carrie Basham Youngfounder and CEO, Talk Social to Me

The offering, dubbed Pulse, is a software-as-a-service portal that Logicworks said is geared to enterprises operating mission-critical application in AWS and Azure cloud environments. Logicworks’ customers can access the portal at no charge. Pulse, according to the cloud company, includes automated industry best practice enforcement bots that scan customers’ cloud environments, custom scans for common architectural red flags that could lead to unauthorized account access, and text message alerting and notification regarding important changes to mission-critical applications. Those changes could include traffic surges or unusual usage patterns.

Ken Ziegler, CEO at Logicworks, said Pulse has its origins in software the company built for internal use. He said his company realized, as the cloud environments under its management continued to grow, it would become “impossible to keep track of all the various cloud-native services running for our customers across different platforms on a manual basis.”

Logicworks developed a programmatic way to scan for anomalies in cloud environments, with the alerts generated from the scanners distributed to internal team members, Ziegler noted. Pulse came about when customers asked to have control over the scanners and the associated notification engine.

Reliam looks to grow via acquisitions

Reliam LLC, a managed services provider focusing on public cloud platforms, plans to use a recent round of funding to pursue acquisitions. Great Hill Partners, a private equity firm in Boston, has provided an initial investment of $17 million and has reserved up to $75 million for further investment.

Reliam is looking for deeper consulting capabilities for complex cloud migrations, noted Simon Anderson, CEO at Reliam. “That is an important building block,” he said.

Anderson also said the company will look to build capabilities, through in-house efforts or via acquisition, in database management optimization. In addition, the Los Angeles company may look to make geographic acquisitions to build up sales and business development teams in different regions in the U.S.

Reliam will also use the funding to invest in automation and tooling for delivering managed services, Anderson added.

The company reported a triple-digit percentage revenue increase year over year, citing new customer growth and existing customers adding new cloud-based applications that need to be managed.

Other news

Cloud-based ERP vendor Oracle NetSuite expanded its roster of partners with consulting and implementation firms Apps Associates, BTM Global and ISP3.

Mphasis, an IT solutions provider, has selected Fortinet over Cisco and Palo Alto Networks as its cybersecurity provider. Mphasis will deploy Fortinet Security Fabric offerings in its network, which spans eight locations in India. Channel partners have been finding consulting and integration opportunities in the Fortinet Security Fabric.

Continuum, which provides an IT service delivery platform for MSPs, has entered the Southern African market through a partnership with Sovaton, a cybersecurity distributor. The Sovaton pact will offer Continuum’s remote monitoring and management platform to potential customers in South Africa, Botswana and Zimbabwe.

Skybox Security, a cybersecurity management vendor, named Uri Levy as its vice president of worldwide channels. In his new role, Levy will oversee the development of Skybox’s global reseller network and channel program. Levy’s 2018 goals include launching a new program for managed security services providers and systems integrators, according to Skybox.

Market Share is a news roundup published every Friday.

Apple Pay Cash

Getting in a bit late on Facebook Messenger, Google Wallet, and PayPal’s action, Apple Pay Cash is the latest peer-to-peer payment system from a tech giant. Apple’s mobile operating system has long had a tie-in with your credit card, thanks to the Apple Wallet app. Starting with iOS 11.2, however, the new Apple Pay Cash service lets the company play an even greater role in your finances. For those who are passionately dedicated to the Apple ecosystem, it has an appeal. But if you want to pay someone who doesn’t have an Apple device, you’re better off with a competitor, like Venmo, that offers cross-platform options, as well as more advanced payment features.

Similar Products

What Is Apple Pay Cash?

Since iOS 8.1, Apple Wallet has let you pay participating stores and websites from your iPhone, touch-free, using a credit card that you connect with the service. It hasn’t, however, been able to let you pay friends directly, as you can with Facebook Messenger, Google Wallet, PayPal, Venmo, and some bank apps. Unlike the previous Apple Wallet functionality, with Apple Pay Cash, you can actually store money in an Apple account, rather than just using Apple Pay as a conduit for a credit or bank card.

Getting Started With Apple Pay Cash

If you haven’t already done so, you first need to download and install iOS 11, specifically 11.2. You can force the update by visiting Settings > General > Software Update. If not, a slider switch in the Wallet & Apple Pay section of Settings lets you enable Apple Pay Cash. Once you slide this switch, you have to enter your Apple ID and password and accept a legal agreement stating that the services are provided through Green Dot Bank. The terms point out that Apple Pay Cash comprises two services: a virtual payment card and the funds transfer service.

Pay Cash works with every Apple phone back to the iPhone 6, and on iPads starting with the Air 2 model. If you have a MacBook with Touch ID, you can use Apple Pay Cash, or you can connect an older Mac to your iPhone and pay that way. The service also works with all versions of the Apple Watch. Androids and other non-Apple devices are not supported.

Note that you’ll only be able to send money to other iOS users who have accepted the agreement, and you both have to have two-factor authentication set up for your Apple ID. Two-factor authentication provides additional security, but it’s stricter than the other payment services’ setup requirements. Note that setup also requires re-entering your credit card digits.

After I completed these steps, I was asked to add a debit card so that money could be transferred to my new bank account. You don’t have to do this to use the service, though—I didn’t. In all, however, the setup isn’t more involved than it is with Venmo, though Facebook Payments is easier than either.

Using Apple Pay Cash

As with Facebook Messenger’s Payments app, you send money via the Apple Messages app; the option is in the app tray at the bottom of the Messages’ screen. Just tap the A icon to open it. You then see a dollar amount that you can increase or decrease, and you can switch between paying and requesting. Venmo and Google Wallet require you to open their separate apps to make payments; so that’s a plus for Facebook and Apple, in that you access payments from an app you’re probably using regularly already.

When I tapped Pay to send $1 to a colleague and then hit the Send up arrow, I had to approve the transaction with a Touch ID finger press (of course, iPhone X users will use Face ID). For sending this dollar, I paid a 3 percent fee (the same as with Venmo and other services), but that’s because the payment was via credit card. If you use a bank debit card, however, you can avoid that fee. The chat entry says Pending until the recipient receives the funds.

You can also use Siri to pay someone, but that’s something also offered by Venmo. Apple Pay Cash, thankfully, doesn’t by default share your every transaction with a special-purpose social network, as Venmo does. With Venmo, unless you change privacy settings, any of your contacts can see exactly who you paid in a feed of transactions. Some may like like this, but it seems like an invasion of privacy to me. However, Venmo offers a couple of important advantages over Apple’s system: You can scan a QR code to verify your payee, and you can attach notes along with a payment. Venmo also lets you pay amounts smaller than $1, Apple’s minimum. Google Wallet, also available for iOS, adds the ability to split payments among multiple recipients.

If you receive money from a contact, it goes into your Apple Pay Cash virtual cash card. You can use that balance either by dumping it back into a connected bank account or to pay for something else via Apple Pay or Apple Pay Cash.

Apple Pay Cash, Venmo, and can all be used to shop at online retailers; PayPal (which also owns Venmo) may have the upper hand here, as the leading internet payment service. The biggest advantage of Venmo, PayPal, and Facebook Payments, however, is that they’re platform-independent—with any of them, you can send money to anyone, regardless of the operating system they use. And with any of them, you can make and receive payments from a web browser—not so with Apple Pay Cash. If you’re using Apple’s system and want to pay an Android user, you’re going to have to hand over dirty old dollar bills, for now.

Should You Pay the Apple Way?

Apple Pay Cash offers a relatively easy and secure way for iOS users to make peer-to-peer payments. But the tech giant is a bit late to the party, and, as with many things in Apple’s history, the service lives in too closedof an ecosystem. In addition to that, Venmo, our Editors’ Choice payment app, offers a richer slate of payment options. If and when Apple adds the ability to pay Android users, we’ll update this review.

Facebook, IBM, Microsoft collaboration developments released

Facebook, IBM, Microsoft and Zoho turned to their market strengths this week to try to stand out in the crowded field of vendors building cloud-based platforms for team collaboration in the workplace.

Microsoft announced at its Ignite developer conference in Orlando, Fla.,  that it would slowly replace Skype for Business Online with its Teams user interface, making the latter the core communications client for Office 365 — the online business productivity suite with 60 million commercial customers. Analysts expect the online version of business Skype to disappear by 2020.

A key advantage Microsoft has over competitors is the significant number of businesses using the Office 365 suite. Having everything in the same package makes it easier for companies to deploy individual products enterprise-wide, analysts said.

Many collaboration vendors have struggled to make companywide deals, but Facebook showed the advantage of having a social network used by billions of people. Facebook said Wal-Mart Stores Inc. planned to roll out across its workforce the business version of the social network, called Workplace. The retail giant has 2.3 million employees worldwide.

“Both Workplace by Facebook and Microsoft Teams are positioning themselves as solutions best suited for companywide deployments,” said Alan Lepofsky, an analyst at Constellation Research, based in Cupertino, Calif.

The Teams and business Skype merger trims the Microsoft collaboration portfolio from four to three products. The remainders include Yammer and Office 365 Groups. The consolidation will make the product line less confusing, analysts said.

IBM leans on Watson

IBM is another collaboration provider going after enterprise-wide deals. To differentiate itself from rivals, IBM has integrated its cloud-based cognitive computing platform, Watson, with its Workspace group-messaging client.

Both Workplace by Facebook and Microsoft Teams are positioning themselves as solutions best suited for companywide deployments.
Alan Lepofskyanalyst at Constellation Research

This week, IBM released Watson-powered analytics that organizes Workspace group posts into categories, so people can find shared information faster. The features had been available only as a technology preview.

Finally, Zoho gave its suite of cloud-based productivity software a boost with the integration of a team-messaging app the company called Cliq. The software provides features that are standard with the genre, such as group chat, file sharing, and audio and video calling.

In general, the announcements this week showed each vendor delivering a product stamped with technology that leveraged individual strengths. “[But] at the end of the day, it comes down to which platform is going to be easiest to use and which platform you can trust, ” said Jon Arnold, an independent analyst and strategy consultant based in Toronto.

Marea: The future of subsea cables

Microsoft, Facebook and Telxius complete the highest-capacity subsea cable to cross the Atlantic

People and organizations rely on global networks every day to provide access to internet and cloud technology. Those systems enable tasks both simple and complex, from uploading photos and searching webpages to conducting banking transactions and managing air-travel logistics. Most people are aware of their daily dependency on the internet, but few understand the critical role played by the subsea networks spanning the planet in providing that connectivity.

Read more

ICYMI – Six Updates and a New SDK

Dev Center Acquisition & Engagement Platform

Successful developers use various channels to spread the word about their apps, such as Facebook, Twitter, popular blogs or Windows Dev Center’s own “Promote your app” feature. We’ve grown this solution over the past two and a half years, evolving it into a complete platform with machine-learning algorithms to maximize user acquisition and engagement campaign ROI.

Adding UWP Features to Existing PC Apps

In addition to Windows Store distribution and modern deployment technology, the Desktop Bridge enables you to use exciting Universal Windows Platform (UWP) features and capabilities that were previously unavailable to existing PC software.

Creator’s Update is next week!

Join our livestreamed event on February 8, 2017 to see what’s new for developers in the Windows 10 Creators Update, what it means for your apps and games, and more about Microsoft’s latest developer products. Whether you’re building for the web or UWP, the latest consumer app or line-of-business tool, there’s something in it for you.

Advertise Across Premium Platforms

The first and most important reason to use premium platforms is wider reach. Microsoft premium platforms such as MSN, Outlook, Skype and Solitaire collection are used by millions of users daily, and now your ad campaigns have a chance to showcase your awesome app when they interact on these platforms.

A triple-win with Playtem

Playtem’s monetization strategy is really interesting. The platform, currently available for Unity games deployed to UWP, iOS and Android, combines both ads and in-app purchases.

The latest Desktop Converter update is now in the Windows Store

Desktop App Converter is a tool that enables you to bring your existing desktop apps written for .NET 4.6.1 or Win32 to the Universal Windows Platform (UWP). You can run your desktop installers through the converter in an unattended (silent) mode and obtain an AppX package that you can sideload on your machine or upload to the Windows Store.

Windows 10 SDK Preview Build 15021!

Check it out here: http://wndw.ms/KEXB94

The Windows team would love to hear your feedback. Please keep the feedback coming using our Windows Developer UserVoice site. If you have a direct bug, please use the Windows Feedback tool built directly into Windows 10.

A complete user acquisition & engagement platform

With so many apps getting published to the Windows Store daily, it can be a challenge to attract and acquire new customers. Successful developers use various channels to spread the word about their apps, such as Facebook, Twitter, popular blogs or Windows Dev Center’s own “Promote your app” feature. We’ve grown this solution over the past two and a half years, evolving it into a complete platform with machine-learning algorithms to maximize user acquisition and engagement campaign ROI.

Major milestones during the user acquisition & engagement platform journey

Our platform now lets you use objective-driven ad campaigns, where you can choose to acquire more customers or re-engage with your existing customers. With the recent launch of Universal campaigns, your app can get in front of customers interacting with Microsoft premium surfaces such as MSN, Outlook, Skype, Microsoft solitaire collection, etc.

The Dev Center user acquisition and engagement platform capabilities are tailored to meet the needs of every developer. You can start with zero dollars using community ad campaigns to advertise your app for free in other apps (in exchange for showing ads for other apps in yours).

You can also promote one of your apps in your other apps using house ad campaigns – again, for free. Even more effective are our paid ad campaigns, with a great return on investment for both app install and app re-engagement campaigns.

In addition, we have recently released our APIs so that you can use the campaign creation/update and reporting information with your organization’s built-in tools.

Universal user acquisition & engagement platform

Finally, for developers interested in running larger ad campaigns, we provide extra support with additional features:

  • $50,000 per campaign limit instead of the regular $5,000
  • Higher thresholds for billing campaigns
  • 1:1 product management team support to help tune your campaigns
  • Third-party tracking SDK support
  • Custom campaign dates
  • Custom user segment generation for huge volume goals

For info about qualifying for these features, reach us at aiacare@microsoft.com.

Whether you’re a developer just starting your journey with the Windows app ecosystem or a top developer looking to find users for your next hit title, the Dev Center user acquisition and engagement platform can help you reach more customers and grow your success.

How do I get started?

If you haven’t already used the app promotion capability, follow these steps to create a new ad campaign:

  • Click on the “Dashboard” after your log in to your Windows Dev Center account.
  • Click on the “Promotions” tab under the Main menu.
  • Click on “New Campaign” to create a new user acquisition or user engagement campaign.

Check out the documentation for more details, then give it a try! If you’ve got suggestions to make these features even more useful, please let us know at Windows Developer Feedback.

Going social: Project Rome, Maps & social network integration (App Dev on Xbox series)

The Universal Windows Platform is filled with powerful and unique capabilities that allow the creation of some remarkable experiences on any device form factor. This week we are looking at an experience that builds on top of the Adventure Works sample we released last week by adding a social experience with the capability (1) to extend the experience to other devices that the user owns through the Project “Rome” APIs, (2) to be location aware using the powerful Maps API, and (3) to integrate with third-party social networks. As always, you can get the latest source code of the app right now on GitHub and follow along.

And if you missed last week’s article on how to enable great camera experiences, we covered how to build UWP apps that take advantage of camera APIs on the device and in the cloud through the Cognitive Services APIs to capture, modify, and understand images. To read last week’s blog post or any of the other blog posts in the series, or to watch the recordings from the App Dev on Xbox live event that started it all, visit the App Dev on Xbox landing page.

Adventure Works (v2)

screen-shot-2016-10-27-at-1-42-33-pm

To give you a quick recap of the sample app, we released the Adventure Works source code last week and we discussed how we used a combination of client and cloud APIs to create a camera app capable of understanding images, faces and emotion, as well as being able to modify the images by applying some basic effects. Building on top of that, the goal for Adventure Works is to create a larger sample app that extends the experience, to add more social features in which users can share photos and albums of their adventures with friends and family across multiple devices. Therefore, we’ve extended the sample app by:

  1. Adding the ability to have shared second screen experiences through Project Rome
  2. Adding location and proximal information for sharing with the location and Maps APIs
  3. Integrating with Facebook and Twitter for sharing by using the UWP Toolkit.

Project Rome

Most people have multiple devices, and often begin an activity on one device but end up finishing it on another. To accommodate this, apps need to span devices and platforms.

The Remote Systems APIs, also known as Project Rome, enable you to write apps that let your users start a task on one device and continue it on another. The task remains the central focus, and users can do their work on the device that is most convenient for them. For example, you might be listening to the radio on your phone in the car, but when you get home you may want to transfer playback to the Xbox One that is hooked up to your home stereo system.

The Adventure Works app takes advantage of Project Rome in order to create a second screen experience. It uses the Remote System APIs to connect to companion devices for a remote control scenario. Specifically, it uses the app messaging APIs to create an app channel between two devices to send and receive custom messages. Devices can be connected proximally through Bluetooth and local network or remotely through the cloud, and are connected by the Microsoft account of the person using them.

In Adventure Works, you can use a tablet, phone or even your desktop as a second experience for a slideshow displayed on your TV through the Xbox One. The slideshow images can be controller easily on the Xbox through the remote or controller, and the second screen experience allows the same. However, with the second device, the user has the ability to view all photos at once, select which one to show on the big screen and even take advantage of the capabilities of the smaller device otherwise not available to the Xbox, such as enabling inking on images for a collaborative experience.

screen-shot-2016-10-27-at-1-42-54-pm

Adventure Works uses Project Rome in two places to start the second screen experience. First, when a user navigates to a collection of photos, they can click on Connect at the top to see available systems and connect to one of them. Or, if the Xbox is already showing a slideshow, a companion devices will prompt the user to start controlling the experience.

screen-shot-2016-10-27-at-1-43-36-pm

For these scenarios to work, the app needs to be aware of other devices, and that is where Project Rome comes in. To start the discovery of devices, use the RemoteSystem.CreateWatcher method to create a remote system watcher and subscribe to the appropriate events before calling the Start method (see code on GitHub):


_remoteSystemWatcher = RemoteSystem.CreateWatcher(BuildFilters());
_remoteSystemWatcher.RemoteSystemAdded += RemoteSystemWatcher_RemoteSystemAdded;
_remoteSystemWatcher.RemoteSystemRemoved += RemoteSystemWatcher_RemoteSystemRemoved;
_remoteSystemWatcher.RemoteSystemUpdated += RemoteSystemWatcher_RemoteSystemUpdated;
_remoteSystemWatcher.Start();

The BuildFilters method simply creates a list of filters for the watcher. For the purposes of Adventure Works we chose to limit the discovery to only Xbox and Desktop devices that are available in proximity.

We wanted to be able to launch the app on the Xbox from any other device and go directly to the slideshow. We first declared a protocol in the app manifest and implemented the OnActivated method in App.xaml.cs to launch the app directly to the slideshow. Once this was done, we were able to use the RemoteLauncher.LaunchUriAsync command to launch the the slideshow on the remote app if it wan’t already running (see code on GitHub).

var launchUriStatus =
    await RemoteLauncher.LaunchUriAsync(
        new RemoteSystemConnectionRequest(system.RemoteSystem),
        new Uri("adventure:" + deepLink)).AsTask().ConfigureAwait(false);

To control the slideshow, we needed to be able to send and receive messages between the two devices. We covered AppServiceConnection in a previous blog post, but it can also be used to create a messaging channel between apps on different devices using the OpenRemoteAsync method (see code on GitHub).


var appService = new AppServiceConnection()
{
    AppServiceName = "com.adventure",
    PackageFamilyName = Windows.ApplicationModel.Package.Current.Id.FamilyName
};

RemoteSystemConnectionRequest connectionRequest = new RemoteSystemConnectionRequest(remoteSystem);
var status = await appService.OpenRemoteAsync(connectionRequest);

if (status -= AppServiceConnectionStatus.Success)
{
    var message = new ValueSet();
    message.Add("ping", "");
    var response = await appService.SendMessageAsync(message);
}

Once the app is running, both the client and the host can send messages to communicate status and control the slideshow. Messages are not limited to simple strings; arbitrary binary data can be sent over, such as inking information. (This messaging code happens in SlideshowClientPage and SlideshowPage, and the messaging events are all implemented in the ConnectedService source file.)

For example, in the client, the code to send ink strokes looks like this:


var message = new ValueSet();
message.Add("stroke_data", data); // data is a byte array
message.Add("index", index);
var response = await ConnectedService.Instance.SendMessageFromClientAsync(message, SlideshowMessageTypeEnum.UpdateStrokes);

The message is sent over using ValueSet objects and the host handles the stroke messages (along with other messages) in the ReceivedMessageFromClient handler:


private void Instance_ReceivedMessageFromClient(object sender, SlideshowMessageReceivedEventArgs e)
{
    switch (e.QueryType)
    {
        case SlideshowMessageTypeEnum.Status:
            e.ResponseMessage.Add("index", PhotoTimeline.CurrentItemIndex);
            e.ResponseMessage.Add("adventure_id", _adventure.Id.ToString());
            break;
        case SlideshowMessageTypeEnum.UpdateIndex:
            if (e.Message.ContainsKey("index"))
            {
                var index = (int)e.Message["index"];
                PhotoTimeline.CurrentItemIndex = index;
            }
            break;
        case SlideshowMessageTypeEnum.UpdateStrokes:
            if (e.Message.ContainsKey("stroke_data"))
            {
                var data = (byte[])e.Message["stroke_data"];
                var index = (int)e.Message["index"];
                HandleStrokeData(data, index);
            }
            break;
        default:
            break;
    }
}

As mentioned above, the user should be able to directly jump into an ongoing slideshow. As soon as MainPage is loaded, we try to find out if there are any devices already presenting a slideshow. If we find one, we prompt the user to start controlling the slideshow remotely. The code to search for other devices, below (and on GitHub), returns a list of AdventureRemoteSystem objects.


public async Task<List<AdventureRemoteSystem>> FindAllRemoteSystemsHostingAsync()
{
    List<AdventureRemoteSystem> systems = new List<AdventureRemoteSystem>();
    var message = new ValueSet();
    message.Add("query", ConnectedServiceQuery.CheckStatus.ToString());

    foreach (var system in Rome.AvailableRemoteSystems)
    {
        var reponse = await system.SendMessage(message);
        if (reponse != null && reponse.ContainsKey("status"))
        {
            var status = (ConnectedServiceStatus)Enum.Parse(typeof(ConnectedServiceStatus), (String)reponse["status"]);
            if (status == ConnectedServiceStatus.HostingConnected || status == ConnectedServiceStatus.HostingNotConnected)
            {
                systems.Add(system);
            }
        }
    }

    return systems;
}

An AdventureRemoteSystem is really just a wrapper around the base RemoteSystem class found in Rome and is used to identify instances of the Adventure Works app running on other devices like Surface tablets, Xbox One and Windows 10 phones.

Make sure to check out the full source code and try it on your own devices. And if you want to learn even more, make sure to check out the Cross-device experiences with Project Rome blog post.

Maps and location

As part of building out Adventure Works, we knew that we wanted to develop an app that showed a more social experience, so we added a way to see the adventures of out fictional friends and the location of those adventures. UWP supports rich map experience by providing controls to display maps with 2D, 3D or Streetside views by using APIs from the Windows.UI.Xaml.Controls.Maps namespace. You can mark points of interest (POI) on the map by using pushpins, images, shapes or XAML UI elements. You can use location services with your map to find notable places and you can even use overlay tiled images or replace the map images altogether.
screen-shot-2016-10-27-at-1-43-54-pm

The UWP Maps APIs provide powerful yet simple tools for working with and customizing location data. For instance, in order to get the user’s current location, you use the Geolocator class to request the current geoposition of the device:


var accessStatus = await Geolocator.RequestAccessAsync();
switch (accessStatus)
{
    case GeolocationAccessStatus.Allowed:

        // Get the current location.
        Geolocator geolocator = new Geolocator();
        Geoposition pos = await geolocator.GetGeopositionAsync();
        return pos.Coordinate.Point;

    default:
        // Handle the case if  an unspecified error occurs
        return null;
}

With this location information in hand, you can then create a MapIcon object based on it and add it to your map control.


if (currentLocation != null)
{
    var icon = new MapIcon();
    icon.Location = currentLocation;
    icon.NormalizedAnchorPoint = new Point(0.5, 0.5);
    icon.Image = RandomAccessStreamReference.CreateFromUri(new Uri("ms-appx:///Assets/Square44x44Logo.targetsize-30.png"));
                    
    Map.MapElements.Add(icon);
}

Adding the friends on the map is similar but we used XAML elements instead of a MapIcon, giving us the ability to focus through each one using the controller or remote on the Xbox.


Map.Children.Add(button);
MapControl.SetLocation(button, point);
MapControl.SetNormalizedAnchorPoint(button, new Point(0.5, 0.5));

Directional navigation works best when focusable elements are layed out in a grid layout. Because the friends can be layed out randomly on the map, we wanted to make sure that the focus experience works great with the controller. We used the XYFocus properties of the buttons to specify how the focus should move from one to the other. We used the longitude to specify the order so the user can move through each friend left and right, and down will bring the focus to the main controls. To see the full implementation, take a look at the project on GitHub.


foreach (var button in orderedButtons)
{
    button.XYFocusUp = button;
    button.XYFocusRight = button;
    button.XYFocusLeft = previosBtn != null ? previosBtn : button;
    button.XYFocusDown = MainControlsViewOldAdventuresButton;

    if (previosBtn != null)
    {
        previosBtn.XYFocusRight = button;
    }

    previosBtn = button;
}
if (orderedButtons.Count() > 1)
{
    orderedButtons.Last().XYFocusRight = orderedButtons.First();
    orderedButtons.First().XYFocusLeft = orderedButtons.Last();
}

While the Adventure Works app only uses geolocation for the current device, you can easily extend it to do things like find nearby friends. You should also consider lighting up additional features depending on which device the app is running on. Since it is really more of a mobile experience than a living room experience, you can add a feature like finding great nearby places to take photos but only enable it when the app is installed on a phone.

Facebook and Twitter integration (and the UWP Community Toolkit)

What’s more social than being able to share adventures and photos to your favorite social networks, and the UWP Community Toolkit includes service intergration for both Facebook and Twitter, simplifying OAuth authentication along with your most common social tasks.

The opensource toolkit includes new helper functions; animations; tile and toast notifications; custom controls and app services that simplify or demonstrate common developer tasks; and has been used extensively throughout Adventure Works. It can be used with any new or existing UWP app written in C# or VB.NET and the app can be deployed to any Windows 10 device including the Xbox One. Because it is strongly aligned with the Windows SDK for Windows 10, feedback about the toolkit will be incorporated in future SDK releases. And it just makes common tasks easy and simple!

screen-shot-2016-10-27-at-1-44-11-pm

For instance, logging in and posting to Twitter can be accomplished in only three lines of code.


// Initialize service, login, and tweet
TwitterService.Instance.Initialize("ConsumerKey", "ConsumerSecret", "CallbackUri");
await TwitterService.Instance.LoginAsync();
await TwitterService.Instance.TweetStatusAsync("Hello UWP!", imageStream)

The Adventure Works app lets users authenticate with either their Twitter account or Facebook account. The standard UWP Toolkit code for authenticating with Twitter is shown above. Doing the same thing with Facebook is just as easy.


FacebookService.Instance.Initialize(Keys.FacebookAppId);
success =  await FacebookService.Instance.LoginAsync();
await FacebookService.Instance.PostPictureToFeedAsync("Shared from Adventure Works", "my photo", stream);

Take a look at the Identity.cs source file on GitHub for the full implementation in Adventure Works, and make sure to visit the UWP Community Toolkit GitHub page to learn more. The toolkit is written for the community and fully welcomes the developer community’s input. It is intended to be a repository of best practices and tools for those of us who love working with XAML platforms. You can also preview the cap­­­­abilities of the toolkit by downloading the UWP Community Toolkit Sample App in the Windows Store.

That’s all for now

Make sure to check out the app source on our official GitHub repository, read through some of the resources provided, watch the event if you missed it and let us know what you think through the comments below or on Twitter @WindowsDev.

Don’t miss the last blog post of the series next week, where we’ll share the finished Adventure Works sample app and discuss how to take advantage of more personal computing APIs such as speech and inking.

Until then, happy coding!

Resources for Hosted Web Apps

 

Announcing UWP Community Toolkit 1.1

Today we are releasing the first update to the UWP Community Toolkit. To see the updates, first:

In under a month since the first release, we are humbled by the positive feedback we have received so far and are excited to see all the contributions the community has made, including:

  • 39 community contributors
  • 188 accepted pull requests
  • 173 issues closed
  • 678 stars
  • 159 forks

Thanks to all the contributors that were involved with this release!

Here’s a summary of what’s new in V1.1:

  1. .NET Foundation. We are excited to announce that the UWP Community Toolkit has joined the .NET Foundation, a vibrant community of open-sourced projects focused on the future of the .NET ecosystem.
  2. Updates and new features. The focus of this release is to improve the quality of the toolkit by addressing feedback we received through GitHub and the Store Sample App. Full list available in the Release Notes, including:
    1. Services: added LinkedIn service (i.e. read user profile and share activity), Microsoft Graph service (i.e. send and read emails from UWP via Office 365 or explore Azure Active Directory graph) and updates to the Facebook and Bing services
    2. Controls: added Blade, GridSplitter and DropShadowPanel controls
    3. Animations: new FadeHeaderBehavior
  3. Sample app. The UWP Community Toolkit Sample App has been updated to include the new features of this release. The Sample App is the best way to preview the features of the toolkit.
  4. Documentation. As the project joins the .NET Foundation, we moved the documentation to a new location, directly connected to GitHub.

imagenew

If you want to use it in your projects, visit the Getting Started page. If you are already using the toolkit, we recommend updating to the latest release.

You can find the roadmap of next release here.

If you have any feedback or are interested in contributing, see you on GitHub!

Download Visual Studio to get started!