Drupal.org gets videos that make Drupal easier to learn

In the beginning of the year I started doing some iOS development for my POSSE plan. As I was new to iOS development, I decided to teach myself by watching short, instructional videos. Different people learn in different ways, but for me, videos tutorials were the most effective way to learn.
Given that recent experience, I'm very excited to share that all of the task tutorials in the Drupal 8 User Guide are now accompanied by video tutorials. These videos are embedded directly into every user guide page on Drupal.org. You can see an example on the "Editing with the in-place editor" page.
These videos provide a great introduction to installing, administering, site building and maintaining the content of a Drupal-based website — all important skills for a new Drupalist to learn. Supplementing user guides with video tutorials is an important step towards improving our evaluator experience, as video can often convey a lot more than text.
Creating high-quality videos is hard and time-consuming work. Over the course of six months, the team at Drupalize.Me has generously contributed a total of 52 videos! I want to give a special shout-out to Joe Shindelar and the Drupalize.Me team for creating these videos and to Jennifer Hodgdon and Neil Drumm (Drupal Association) for helping to get each video posted on Drupal.org.
What a fantastic gift to the community!
Source: Dries Buytaert www.buytaert.net


My POSSE plan for evolving my site

In an effort to reclaim my blog as my thought space and take back control over my data, I want to share how I plan to evolve my website. Given the incredible feedback on my previous blog posts, I want to continue to conversation and ask for feedback.

First, I need to find a way to combine longer blog posts and status updates on one site:
Update my site navigation menu to include sections for "Blog" and "Notes". The "Notes" section would resemble a Twitter or Facebook livestream that catalogs short status updates, replies, interesting links, photos and more. Instead of posting these on third-party social media sites, I want to post them on my site first (POSSE). The "Blog" section would continue to feature longer, more in-depth blog posts. The front page of my website will combine both blog posts and notes in one stream.
Add support for Webmention, a web standard for tracking comments, likes, reposts and other rich interactions across the web. This way, when users retweet a post on Twitter or cite a blog post, mentions are tracked on my own website.
Automatically syndicate to 3rd party services, such as syndicating photo posts to Facebook and Instagram or syndicating quick DrupalCoin updates to Twitter. To start, I can do this manually, but it would be nice to automate this process over time.
Streamline the ability to post updates from my phone. Sharing photos or updates in real-time only becomes a habit if you can publish something in 30 seconds or less. It's why I use Facebook and Twitter often. I'd like to explore building a simple iOS application to remove any friction from posting updates on the go.
Streamline the ability to share other people's content. I'd like to create a browser extension to share interesting links along with some commentary. I'm a small investor in Buffer, a social media management platform, and I use their tool often. Buffer makes it incredibly easy to share interesting articles on social media, without having to actually open any social media sites. I'd like to be able to share articles on my blog that way.
Second, as I begin to introduce a larger variety of content to my site, I'd like to find a way for readers to filter content:
Expand the site navigation so readers can filter by topic. If you want to read about DrupalCoin, click "DrupalCoin". If you just want to see some of my photos, click "Photos".
Allow people to subscribe by interests. DrupalCoin 8 make it easy to offer an RSS feed by topic. However, it doesn't look nearly as easy to allow email subscribers to receive updates by interest. Mailchimp's RSS-to-email feature, my current mailing list solution, doesn't seem to support this and neither do the obvious alternatives.
Implementing this plan is going to take me some time, especially because it's hard to prioritize this over other things. Some of the steps I've outlined are easy to implement thanks to the fact that I use DrupalCoin. For example, creating new content types for the "Notes" section, adding new RSS feeds and integrating "Blogs" and "Notes" into one stream on my homepage are all easy – I should be able to get those done my next free evening. Other steps, like building an iPhone application, building a browser extension, or figuring out how to filter email subscriptions by topics are going to take more time. Setting up my POSSE system is a nice personal challenge for 2018. I'll keep you posted on my progress – much of that might happen via short status updates, rather than on the main blog. ;)
Source: Dries Buytaert www.buytaert.net


New in Basecamp 3: To-do Groups

A little thing that’s a big deal.For years, we’ve been making to-do lists in Basecamp that looked like this:See those === DIVIDERS ===? We were trying to group related to-dos together within a list. All we wanted was to bring a little structure, and an extra ounce of organization, to a single flat list.We weren’t alone. Whenever a customer showed us how they use Basecamp, we’d inevitably run into a similar === DIVIDER === pattern. They were trying to do what we were trying to do.We were all hacking it. As of today, the silliness is over. No hacks required!We just launched To-do Groups in Basecamp 3!What’s a group?A group is like a sublist on a list. It’s organization, it’s structure, it’s an envelope, it’s a box. It has a header, and to-dos grouped below.The anatomy of a Basecamp 3 to-do list with two groupsWhen you drag a group header, all the to-dos under that header move with it. If you click the header, you go to a separate page with just those to-dos on it. You can discuss a group, you can archive a group, you can see all the to-dos completed in a specific group, you can ungroup a group. You can make as many groups on a list as you’d like (but you can’t make a group inside a group — that would lead to an eventual, over-organized mess).How to make a groupThere are two ways to make a group of to-dos on a list.To make an empty group (which you can fill later), click the hamburger menu to the left of the list name. Select “Add a group”Make a group from the list header2. To group together to-dos that are already on a list, shift-select multiple to-dos (hold down shift, and click the hamburger menu to the left of each to-do you want to group), and select the “Group them” item in the menu.Group some existing to-dos togetherAdding to-dos to a groupThere are a couple ways to add to-dos to a group.Simply drag an existing to-do down below a group header. It’ll snap into place and be part of that group for now on (or until you drag it back out).Or click the hamburger menu next to the group name, and select “Insert a to-do” from the menu.Insert a new to-do right below a group headerMoving all to-dos a group togetherTo move a group of to-dos together, just click+hold the drag handle/menu to the left of the group header. Then drag above or below any other group. To make it easier to move, the header will collapse to a single line and the number of to-dos you’re moving will show up as a little badge to remind you you’re moving multiple to-dos at once. Like this:Isolating a group for review or discussionOne of the great bits about groups is that clicking on the group header will take to a separate page which isolates just that group of to-dos. Now you can focus in, have a discussion about the entire group, add to-dos to that group, and see all the completed items for that group.On the left we have a full list with a few different groups. On the right, I’ve clicked on the “Android” group header and now I just have open/completed to-dos from that group, plus a conversation about the group below.Ungrouping to-dosMake a group, but decide you’d rather have them “loose” again? Easy, just select the menu next to the group name, and select “Ungroup”. The group header slides out, fades away, and the to-dos jump up to the top of the list where any other loose, ungrouped to-dos are listed.Ungroup to-dos that were grouped togetherUse casesTo-do Groups are excellent for organizing work around disciplines (to build this feature designers need to do this, programmers need to do that, and when QA finds something fishy they can log things, too). Or for moving work through phases. You can drag to-dos between phases, set up work in advance, and even keep future phases empty until it’s time to slot work in.A couple of simplified examples of how groups bring structure to to-do listsAnd here’s an example from an actual project we have running right now:BONUS: Add to-dos from anywhere in a listEven if you have no need for groups, we just made Basecamp 3’s to-do lists better for everyone. Before you could only add to-dos from the bottom of the list using the “Add a to-do button”.Before today, the “Add a to-do button” was the only way to add to-dos to Basecamp lists.If you wanted to add a to-do at the top of a list, or somewhere in the middle, you had to first add from the bottom and then drag the to-do into place.No longer!Now you can add to-dos anywhere in a list. Just click the hamburger menu next to any existing to-do, any existing group header, or the list title itself, and you’ll see an “Insert a to-do” menu item. Select that and you’ll be able to add a to-do right in place.The big ideaWe set out to incorporate and improve on hacked patterns we saw in the wild. We did that. We set out to make to-do lists more powerful without making them more complicated. We did that. We set out to keep to-do lists the same for those who didn’t want to use groups. We did that. We set out to prevent over-organization and sub-sub-sub-lists. We did that. We set out improve baseline to-do list interactions (like adding anywhere). We did that.In addition to these new features being available on the web-based version of Basecamp 3, they’re also available on the desktop versions for Mac and Windows, and on iOS (iPhone and iPad) and Android.We’re really proud of this new release, and we hope you find it especially useful. Goodbye === HACKS ===, hello GROUPS!All growing businesses run into the same fundamental problems. Hair on fire, buried under email, overwhelmed by chat, too many tools, stuff slips through the cracks, information spread everywhere. End all that with Basecamp 3. After switching to Basecamp 3, 89% of business owners report having a better handle on their business, and 84% report more self-sufficient teams. Get it all together in one place with a single system: Basecamp 3. Try it free today.New in Basecamp 3: To-do Groups was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


Google Assistant Lets Users Subscribe to Daily Reminders by @MattGSouthern

Google Assistant on both iOS and Android has a new feature that lets its users subscribe to daily reminders.The post Google Assistant Lets Users Subscribe to Daily Reminders by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


You Just Changed My Workflow

Good products challenge people to rethink their existing workflows and consider changing them so that they might adopt the new tool.
This requires time and patience, trial and error, and can even create a lot of anxiety.

The difference between a good product and a great one is that a great one simply changes the user’s workflow magically.
And, it really does feel like magic when it works well. Instead of anxiety it can create excitement. Instead of the user feeling as if their investing time that they can’t afford to invest they, instead, feel that their time is well-spent.
This is the aim of any good product designer and developer. Our goal is to fundamentally transform your existing workflow(s) for the better. And, if we do our job well, then, we can be handsomely rewarded for it.
CryptoYum Development — Nov, 2017
I’m working on two current mobile (iOS) applications right now that I hope impacts the users in these positive ways. I hope that they are seen and understood as great products instead of just good products.
I believe that CryptoYum has a unique opportunity to transform a bitcoin, blockchain, and cryptocurrency enthusiast’s reading workflow permanently, becoming a daily source of inspiration and news and education for them regarding one of the most exciting technology movements of our time.
I really can’t wait to get it into our Alpha / Beta user’s hands so that they can help me refine the native workflow so that it works well with their own.
George App Development — Nov, 2017
With George I’ve built a mobile workflow around creating accountability for my own tasks and get-shit-done system that mirrors my own natural behavior and enhances it for the better.
I barely spend any time in the app itself because there are opportunities for me to engage with the app quickly without ever opening it (a’la 3D touch):
Add it, remove it… get back to work.
My personal productivity has increased and it couldn’t be better timed since having a new kiddo arrive recently.
But most importantly is the fact that I was more than willing to change my own personal workflow to accommodate the increased performance. It’s been a joy to use and I’m glad to finally have a To-Do list app that actually works and that I’ve actually kept around for longer than a week (or two).
The real tests have been when I’ve demo’d it for friends and unaffiliated folks during my own user-tests. When I show it to them and they reply:
Whoa… you just changed my workflow.
Then I know I’m onto something special.
We want to build products that do just that. Nothing special… just magical.
The post You Just Changed My Workflow appeared first on John Saddington.
Source: https://john.do/


What’s new in Basecamp 3.6 on iOS

This feature-packed release of Basecamp for iPhone and iPad is available in the App Store today. Here’s a look at what’s new.Improved attachments and sketchingIt all starts with a redesigned file picker. Tap the paperclip button anywhere in Basecamp to see clear buttons for each kind of thing you can attach. They’re all first-class — especially Sketch which got a big boost in this release. Now, before you upload an image to Basecamp you’ll have the option to draw on it first. It’s great for highlighting and making notes — or just having fun.Pick an image (left), tap ‘Sketch on image’, then add your drawings before uploading to Basecamp.In addition to sketching on images, we’ve also beefed-up the drawing tools. You can now choose the from 3 line weights and 5 colors to add variety and interest to your sketches. Also new: save your Basecamp sketches or share them to other apps.Works great with Apple Pencil on iPad Pro, too.Drag and Drop Files on iPadOne of the coolest new features on iOS 11 is drag and drop and it’s now supported in Basecamp. You can now select one (or more) images from the Photos app, for example, and simply drop them into Basecamp! Here’s how it looks:Drag one or multiple files into Basecamp.Easier invitesAwhile back, inviting people to your projects got easier with the introduction of special links you could send to people that would automatically invite them to the project — no need to enter their name and email. On iOS we took that a step further. With one tap you can now share the URL with others via Messages, Email, Airdrop — or any other apps you use on iOS. It’s the easiest way to get people into your projects yet!iOS 11 updatesFinally this release includes several fixes and improvements for iOS 11. The most notable one is for people who were unable to upload images to Basecamp because they were using iOS 11’s new space-saving HEIC format. Now when you upload an HEIC image, Basecamp will automatically convert it to a compatible format (jpg). It all happens automatically and behind-the-scenes so you won’t have to do a thing—it just works!That’s all for now. We’re cooking up more for the next release. Stay tuned!As always, please keep your suggestions, feedback, and bug reports coming our way. We’ve got some neat stuff coming in the next version so if you’re interesting in seeing it before everyone else, we have a few openings in our private beta. Send us an email and we’ll invite you.❤️ The iOS Team at Basecamp, Tara Mann, Dylan Ginsburg, Zach Waugh, and me.What’s new in Basecamp 3.6 on iOS was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


New in Highrise — our Small Business CRM

Mobile 3.1, better mobile emails, and moreIt’s officially Fall here at Highrise HQ in Chicago, but it sure didn’t feel like Fall for our wonderful company meetup here a few weeks ago:If you want to get to know the team some more, and hear our thoughts on business you should check out a couple videos we made with some great advice around staying motivated and getting started with programming.For more videos like these, subscribe to the channel.We’ve also been busy getting the word out about our simple CRM and have had some fortunate results with Highrise recently being named as a top 20 category leader for CRM solutions by GetApp.com and 6th for best CRM software by Crozdesk.But we could still use a lot more help spreading the word. If you have a few minutes, we could use some reviews on Capterra (or any other review site you frequent).As always if you need anything, whether Highrise or otherwise, please shout. We’d love to help.Nathan Kontny CEO, Highrise YouTube / Twitter / Facebook / InstagramMobile 3.1Just a couple months ago, we announced iOS 3.0 and today we’re thrilled to announce BOTH iOS and Android 3.1.For iOS users, since we recently released 3.0, these updates are general bug fixes and performance improvements.For our Android users, you’ll get all of the iOS 3.0 updates like tags!:Read about more Highrise Mobile 3.1 features here.If you like the recent updates we’d love a review in the app stores or if there’s something causing you trouble send us a note: support@highrisehq.com.Better Mobile EmailsWe’ve been making a big push to improve the Highrise experience on mobile devices. And today’s change continues to move that forward.Read more about better mobile emails here.API Strict Parties UpdateHighrise has many integrations, a few of which we’ve built ourselves and released over the past few years like Gmail and Outlook, and even Slack.And many built by third parties, such as Zapier…For those integrations matching on names across apps or systems, one of the issues both our partners and our customers sometimes ran into was a ‘fuzzy logic’ search on contacts. The ‘Parties’ search for People and Companies was built to account for some flexibility on the way people might enter contacts into various systems — i.e. ‘Sam Jones’ or ‘Samantha Jones’ would return both contacts. But if Sam and Samantha are actually 2 separate people the fuzzy logic also sometimes caused confusion.So we’ve introduced a new parameter with our API that allows the user to turn off the fuzzy logic and only return exact matches.Read more about our API strict party parameter here.Highrise About TownRead more about a few places we’ve been spotted in the wild recently.Highrise Blog and Tips…Every week we publish a new tip such as:Reordering custom fieldsShare notes with mentionsTextExpander + HighriseUsing access logs‘Secret’ contact filtersFinding files fasterFollow us on Medium for more frequent Highrise tips and announcements. Or subscribe on YouTube for daily business insights.New in Highrise — our Small Business CRM was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


Highrise Mobile 3.1 now on iOS AND Android

Just a couple months ago, we announced iOS 3.0 and today we’re thrilled to announce BOTH a 3.1 version for iOS and Android.For iOS users, since we just released iOS 3.0, this iteration has a lot of tweaks and fixes so you’ll see fewer crashes and bugs.For our Android users, you’ll get all of the iOS 3.0 updates like the ability to search leads and contacts by tags.And a lot more Task features brought into the app.And more… like support for predefined values on custom fields, incorrectly formatted international phone numbers, copying fields from a contact, and emojis in notes, emails and comments.A recent iOS review:4* We’re a small sales organization with tons of complex interaction with our customers. We depend heavily and love Highrise on our desktops and laptops. I’ve been a beta tester for the upgrade iOS app for a few months and have been happy to see everything they’ve added and improved in this latest version….chuckamosBut what we’re really excited about is that from here on out we’ll continue to release BOTH iOS AND Android updates AT THE SAME TIME (read here for more technical details on how that’s possible).And in case you haven’t been paying attention, our mobile updates have been much more frequent this year. We’re working on another big one coming soon…hint:And if you love it, please give us a review. If not, let us know what we can improve: support@highrisehq.com.Highrise Mobile 3.1 now on iOS AND Android was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


Google Opinion Rewards Comes to iOS: Get Paid for Taking Surveys by @MattGSouthern

Google is bringing Opinion Rewards to iOS, which is a program that pays users to take surveys from companies.The post Google Opinion Rewards Comes to iOS: Get Paid for Taking Surveys by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


Probably a Good Thing

There is one area of technology that I have very little experience with and that’s AR/VR. It was only recently that I purchased one of the Google Cardboard headsets!
This area of technology is fascinating though and the recent iOS update and the growing number of AR apps in the App Store is fun to play with.

Just messing around.
This is one area of technology that I’m entirely behind the curve on and I think I’m okay with that. I’ve never even put on an Oculus rig yet and although I’ve seen YouTube videos of people’s experiences… it doesn’t excite me to go out and try it.
At some point I will and then I’m sure I’ll write something about it.
But, for now, I don’t mind observing and watching other people get deeply engaged with it. I’m okay with that. Sometimes being an observer is exactly what you’re supposed to do.
And, quite frankly, I don’t have any time (and that’s probably a good thing).
The post Probably a Good Thing appeared first on John Saddington.
Source: https://john.do/


Share YouTube Videos With iMessage Contacts Without Leaving the App by @MattGSouthern

YouTube for iOS has been updated with iMessage support, letting users watch and chat about videos without leaving the app.The post Share YouTube Videos With iMessage Contacts Without Leaving the App by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


Google’s iOS App Can Now Filter Search Results by Date by @MattGSouthern

Google’s latest update to its iOS app allows users to filter search results by date range.The post Google’s iOS App Can Now Filter Search Results by Date by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


iOS 11 Safari Feature Flags

I was rooting around in the settings for iOS Safari the other day and stumbled upon its "Experimental Features" which act just like feature flags in any other desktop browser. This is a new feature in iOS 11 and you can find it at:
Settings > Safari > Advanced > Experimental Features

Here's what it looks like today:

Right now you can toggle on really useful things like Link Preload, CSS Spring Animations and display: contents (which Rachel Andrew wrote about a while ago). All of which could very well come in handy if you want to test your work in iOS.

iOS 11 Safari Feature Flags is a post from CSS-Tricks
Source: CssTricks


Google Becomes Apple’s Search Provider on iOS and Mac by @MattGSouthern

Google is now Apple’s default search provider for Siri, iOS search, and Spotlight search on macOS.The post Google Becomes Apple’s Search Provider on iOS and Mac by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


What’s new in Basecamp 3.5.4 for iOS

🍂 Fall is here, there’s a new version of iOS, and with it comes a new release to Basecamp for iPhone and iPad. It’s available in the App Store today. Here’s a brief look at what’s new:Quick jumpQuick jump is one of our favorite new things in Basecamp this year and we’re excited to bring it to iOS. It works exactly like the desktop version, especially on iPads with a keyboard attached (either 3rd party keyboards or iPad Pro with the Smart Keyboard). Command + J to start. Arrow up/down. Enter to select. Type to filter. It’s just the same.Quick jump to projects, people, or recently visited items.It’s also available on as an experimental feature on iPhone. That’s an atypical approach for us so let me explain. As of today you can quick jump by swiping from the top edge of your iOS device with two fingers. It works pretty well but the gesture makes this feature hard to find on your own, it can be difficult to execute reliably, it gets overridden by a system gesture used by iOS’s Voice Over, and until we hold one in our hands, we’re unsure how well this gesture will hold up on the iPhone X.Quick-jump on iPhone. Swipe-down with two fingers to access recent items. Type to filter.That said we’ve been using it internally for weeks so we know it’s useful. Rather than hold it back until we have a better idea, until we get it perfect, we made the decision to ship it and see how it fares in the wild. To be successful this feature needs to be quickly and easily available anywhere you are in the app and today the best means to accomplish that is with a gesture which can be triggered anytime. We hope with daily use and your feedback, new solutions will present themselves. We’ll continue to evaluate and evolve in upcoming releases.Rich text editingIn our previous release we added support for the new rich Color tool. This time we’ve kept pace by adding support for the new Horizontal Rule tool. We also reversed our decision to match the Basecamp desktop and remove the indent/outdent tools. While normally it makes sense to offer the same tools on all platforms, it’s the tab key that made indent/outdent expendable on desktop. Without a tab key on iOS (unless you have an external keyboard) we left users with no way to indent. This update brings them back.Horizontal Rule, Outdent/Indent.Keyboard ShortcutsIn addition to command + J to quick jump we’ve added shortcuts for quickly opening the Home, Hey!, Activity and Find tabs on iPad.Hold the command key to see available shortcuts on iPad.Finally we included a few fixes for issues with iOS 11.As always, please keep your suggestions, feedback, and found bugs coming our way. We’ve got some neat stuff coming in the next version so if you’re interesting in seeing them before everyone else, we have a few openings in our private beta. Send us an email for details.❤️ The iOS Team at Basecamp, Tara Mann, Dylan Ginsburg, Zach Waugh, and me.What’s new in Basecamp 3.5.4 for iOS was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


“The Notch” and CSS

Apple's iPhone X has a screen that covers the entire face of the phone, save for a "notch" to make space for a camera and other various components. The result is some awkward situations for screen design, like constraining websites to a "safe area" and having white bars on the edges. It's not much of a trick to remove it though, a background-color on the body will do. Or, expand the website the whole area (notch be damned), you can add viewport-fit=cover to your meta viewport tag.
<meta name="viewport" content="width=device-width, initial-scale=1.0, viewport-fit=cover">

Then it's on you to account for any overlapping that normally would have been handled by the safe area. There is some new CSS that helps you accommodate for that. Stephen Radford documents:

In order to handle any adjustment that may be required iOS 11's version of Safari includes some constants that can be used when viewport-fit=cover is being used.

safe-area-inset-top
safe-area-inset-right
safe-area-inset-left
safe-area-inset-bottom

This can be added to margin, padding, or absolute position values such a top or left.
I added the following to the main container on the website.
padding: constant(safe-area-inset-top) constant(safe-area-inset-right) constant(safe-area-inset-bottom) constant(safe-area-inset-left);

There is another awkward situation with the notch, the safe area, and fixed positioning. Darryl Pogue reports:

Where iOS 11 differs from earlier versions is that the webview content now respects the safe areas. This means that if you have a header bar that is a fixed position element with top: 0, it will initially render 20px below the top of the screen: aligned to the bottom of the status bar. As you scroll down, it will move up behind the status bar. As you scroll up, it will again fall down below the status bar (leaving an awkward gap where content shows through in the 20px gap).
You can see just how bad it is in this video clip:

Fortunately also an easy fix, as the viewport-fit=cover addition to the meta viewport tag fixes it.
If you're going to cover that viewport, it's likely you'll have to get a little clever to avoid hidden content!

I think I’ve fixed the notch issue in landscape 🍾 #iphoneX pic.twitter.com/hGytyO3DRV
— Vojta Stavik (@vojtastavik) September 13, 2017

“The Notch” and CSS is a post from CSS-Tricks
Source: CssTricks


Google Chrome Has a New Barcode Scanning Shortcut by @MattGSouthern

With the latest update to Chrome on iOS, there is now a shortcut on the keyboard for scanning barcodes.The post Google Chrome Has a New Barcode Scanning Shortcut by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/


Basecamp 3 for iOS: Hybrid Architecture

We’ve written quite a bit in the past about our approach to building hybrid mobile apps. Basecamp 3 represents the latest generation of this architecture, taking everything we’ve learned from previous versions.The first app for Basecamp 2 app was iPhone only, written in RubyMotion as a thin wrapper around UIWebView. Next, we did a new universal app for Basecamp 2, written in Xcode + Objective-C, still a using UIWebView, but with a bit more native code thrown in. For Basecamp 3, we’ve replaced Objective-C with Swift, UIWebView with WKWebView and added Turbolinks, with even more native code, and a deeper integration between native and web.Defining HybridFirst, it helps to be clear about what we mean by “hybrid”. That term is used in so many different contexts, that it’s almost meaningless. In our use, we’re referring to standard native apps where a significant portion of the content is rendered using web technology. I explicitly say content there because it is an important distinction. We’re not using a framework that attempts to mimic native controls using HTML/CSS. We’re not using a framework that tries to compile another language to native code, or make a cross-platform app from a single codebase.For us, it means using Xcode + Swift, and conforming to all the platforms conventions regarding navigation/presentation. The building blocks of our app are composed of UINavigationController, UITabViewController, UISplitViewController, UIViewController, etc. Within those containers, we have many screens where the content is built using UITableView or UICollectionView, we have even more where that role is filled by a WKWebView.Under the hoodBasecamp 3 for iOS is written 100% in Swift 3.1 (soon to be 4), using the latest version of Xcode. We only have a few dependencies, but the ones we do have we manage with Carthage. The core library for enabling this hybrid architecture is Turbolinks. We use Turbolinks on the web, and our companion frameworks for iOS and Android let us use it in our native apps as well. The framework handles communicating with Turbolinks.js and allowing the use of a single WKWebView, shared across multiple different screens.Router/NavigatorIn addition to Turbolinks, we have a number of other components to support it. Most of our navigation in the iOS app is URL-driven. A url can come from a number of sources (web link, push notification, universal link from another app, native action, etc), and they all go through the Router. This router is responsible for figuring out exactly what action to take for a given url. The router may open the url in Safari if it’s for another domain, display a media viewer if it’s an image/video, or in the common case, create a new view controller to display. The router hands off a view controller off to the Navigator which handles the presentation. Most view controllers are pushed on the current navigation stack, but we also support presenting certain screens (like new/edit views) modally, or replacing the current screen when appropriate.BridgeThe last component that makes up the hybrid architecture (though we have a number of other components not related to the hybrid part) is what we call the “Bridge”. This is a umbrella term for all the various parts of the app involved in native→web (or web→native) communication. The primary code here is a local JavaScript file (written in TypeScript) embedded in the app and injected into the web view using WKUserScript. This provides native code an API for communicating with the web view without needing to directly query the DOM or do complex JS. Using a WKScriptMessageHandler, we can respond to messages sent from the web view through the bridge.Bridge in action. The mobile web is on the left, the app is on the right. The bridge hides the top nav, breadcrumbs, and other elements we want render differently in the appAbove is one example of the bridge in action. We use it to hide many elements that are normally displayed on the mobile web that don’t make sense in the app. Since we provide a tab bar for top-level navigation, we don’t need that displayed here. Since we have a navigation controller, we don’t need the breadcrumbs for navigation. Finally, we hide the web edit/bookmark/actions menu and instead provide a native version.ExamplesThis is easier to visualize what this looks like in practice with a few examples. In the images below, I’ll use a purple overlay to indicate web view, and a green overlay to indicate native UI.Main TabsBasecamp 3 for iOS has 4 main tabs (Home, Hey!, Activity, and Find). Each one of these tabs are 100% native. These are the primary points of interaction in the app, and we wanted them to be as fast as possible. We also wanted to provide a different experience from the desktop that we thought made more sense on mobile, such as a unified Hey! for all notifications that also included recent Pings.Basecamp 3 for iOS — Main tabsMessageWhen you tap a notification in Hey!, say for a new message, then we push a new TurbolinksViewController on the navigation stack:From left to right: Hey! screen, viewing a message, actions menu, tools menuThis is a typical screen where all the content is a web view. Through our bridge, we pulled data out of the page to display in the navigation bar. Similarly, we used data from the DOM to populate a native actions menu popover displayed when you tap the “…” button. Since this dynamic and provided by the page, we can change it server-side at any time. Finally, if you tap the nav bar title, we show a native “tools menu” that provides quick access for navigating around a project.CampfireWe also have screens where the content is a mix of both native and web. This is the case for Campfires:From left to right: Hey! screen, viewing a campfire, completing a mention, attaching a fileThe main chat content here is web, but we decided to use a native view for the input. This fixes a number of issues with the web input like maintaining the correct position when scrolling, and we can also have better control over things like interactive keyboard dismissal. When typing someone’s name, we use a native mention auto-completer. Tapping the paperclip button shows the attachment picker, which is a native element that we use throughout the app with some nice touches, like quickly picking recently taken photos. All these components can work seamlessly together on the same screen.SummaryThose are just a few examples, but demonstrates the flexibility of this approach. The key to this architecture is that we’re not locked into one method or framework. Native or web isn’t a binary choice, but instead a spectrum:Web → Native spectrumFor each screen of the app, we can adjust where we sit on that spectrum. We can decide a native screen gets little use and isn’t worth the maintenance, so we change it to web. We can decide a web screen isn’t providing the best experience, and convert it to native. We could decide to try React Native and mix that in as well. Whenever Apple releases a new API, we can immediately support it since we’re not depending on a 3rd-party framework to be updated.One thing we deeply value at Basecamp is independence of teams. If we had to coordinate the integrationand release of every feature with the web, iOS, and Android teams all working in lockstep, we’d never ship anything. This architecture allows our web team to build a new feature and ship it simultaneously across all platforms. By default, we have a view controller that can display any url in Basecamp 3, so any new urls will just work in the app. We can iterate and experiment on the web, ship immediately on all platforms, and later make it native if feel we can improve the experience.This also lets us the mobile teams focus on how to best serve the platform. One of our goals is 100% coverage in the mobile apps, you should never have to go to the desktop because the apps don’t support something. With our solid foundation provided by the web, we can deliver on that goal, and then focus our efforts on platform-specific improvements. These include features like rich content push notifications, universal links, hand-off support, iCloud Keychain support, share extension, today widget, and more. Some of those things would be impossible or non-trivial if we didn’t have full native support at our disposal.Basecamp 3 for iOS: Hybrid Architecture was originally published in Signal v. Noise on Medium, where people are continuing the conversation by highlighting and responding to this story.


Source: 37signals


YouTube Users on iOS Can Now Live Stream Their Screens by @MattGSouthern

Google has updated its YouTube app for iOS with the ability to live stream iPhone or iPad screens.The post YouTube Users on iOS Can Now Live Stream Their Screens by @MattGSouthern appeared first on Search Engine Journal.
Source: https://www.searchenginejournal.com/feed/