#like the second string in the IOS code makes sense
Explore tagged Tumblr posts
Text
i don't understand what these strings of code are for. they don't seem to do anything. why are they here? is this like the load bearing picture of a potato or whatever where if it's not there it doesn't work even though the potato isn't visible and doesn't actually serve any function?
#ignore me#i am giving myself the worst possible crash course in CSS#by which i mean#i am fully just fucking winging it#and figuring shit out by trial and error#like the second string in the IOS code makes sense#because it does the speech bubble thing#but the second string in the messenger code doesn't appear to have an effect?????#trying to figure this out on 5 hours of sleep is doing me absolutely no favors#but i literally couldn't sleep for thinking about it#so here i am
0 notes
Text
Vsco Download For Mac
VSCO 2 is full of character and personality. You will find textures and timbres that have never been captured before and probably will never be captured quite like this again. Chamber strings with a clean, intimate sound; rarities such as bass recorder, ophicleide, a circular alto horn, and an ethnic xylophone. Download Visual Studio Code to experience a redefined code editor, optimized for building and debugging modern web and cloud applications. Download Visual Studio Code - Mac, Linux, Windows This site uses cookies for analytics, personalized content and ads. VSCO Membership Monthly or Annual Subscription Start your free 7-day trial. 200+ VSCO Presets. Unlock VSCO’s complete preset library, including vintage Film looks by Kodak, Agfa, and Ilford. Advanced Photo Editing Tools. Create images you love with exclusive tools like HSL and Borders. Video Editing Tools. Inspired by VSCO Photoshop Actions we’ve created 10 Free VSCO Photoshop Actions. All these VSCO Photoshop Actions will add a trendy VSCO effect to all your photos.
3.5/5(65 votes )
Taking photos is like a mandatory task now in this technology-based world. Notably, the younger generation loves to take pictures everywhere they go. It gets more special when they can add some visual effects or edit the photos as their demand. VSCO For PC is ready with the most amazing features that everyone would like for their photos.
This fantastic app has user-friendly editing features for photos and videos. VSCO online editor and VSCO desktop app will amaze you with everything. Till now, it has been a popular mobile app. But it also comes with some great news for desktop users. There are some excellent photo and video editing features in the VSCO cam app for PC. So you can Download from this website Without Any Doubt:
Table of Contents
2 Things about the VSCO for Windows 10/Mac
2.1 Features of VSCO cam app for PC
3 How to download the VSCO app for PC and install it?
Why use the VSCO app for PC?
As we said earlier, VSCO cam for PC has become much more social, because of seeing the excellent photos of your favorite photographers. This app is too easy to use for editing and sharing your photos through your PC. It’s a powerful photo editing software we can find today, which has many improvements tools.
VSCO desktop app has some unique filters that are different from other software. Anyone can edit an image beautifully in visuals without specialized knowledge of Photoshop. You should share these edited photos and compare the difference of your pictures on other photo sharing sites. Of course, your photographs will never be comparable to any other photo or video editing application.
Things about the VSCO for Windows 10/Mac
This app is developed by VSCO (Visual Supply Company) as VSCO cam and listed under Photography. Generally, it is a community app that allows you to share your photos online as much as you want. There is another brilliant feature, which also supports to join a chatting session between users. We will recommend you to read online reviews about this app to get some more knowledge.
Features of VSCO cam app for PC
There are several features in the VSCO app for pc. We will discuss the following main features of this app.
# Impressive and revolutionary tools
This software comes with the best exposure. It is also equipped with a vignette feature, which confirms that your pictures get better fitting borders. The VSCO photo editing app has a fantastic view of the machine.
It allows you to straighten your photo and better crop. You can add contrast at the level best and fade away with colors as well. The temperature filter is one of the main features of this photo editing app.
# Connect with the creative community
With the VSCO cam app, you can share your photos on any other social media networking sites. Your friends and families will always love your latest edited pictures. You also have an excellent opportunity to discover the content of the community. When you are connected with your favorite photographers, you will have new users to follow.
# Compatibility
This application is supported to sync with any smartphones or android devices. The VSCO app for PC has made it possible for you to use this app on your computer. With this software installed on your computer, you are in a position of comparing the original images and the edited photos simultaneously to make a wise decision, which one is better.

What’s new in the recent update of VSCO for PC?
There are lots of improvements in the last update of this software. To edit a photo professionally, several functions of this app are improved in a considerable margin. The presets on the latest edition is surprising for making a superb video output. If you found any bug in the updated version, you can inform the VSCO support team.
How to download the VSCO app for PC and install it?
Unfortunately, the VSCO app is only available for smartphone platforms such as Android or iOS/iPhone. So, this software is unusable on a desktop because it has no EXE or DMG version. But we can tell you the best way to download the VSCO app for windows. You will find the VSCO full pack in major app stores.
You should follow the below-mentioned steps to install the software in your desktop-
Step 1. At first, you have to select and install a virus-free latest android app emulator.
Note: The NOX Player and the Bluestacks are the most popular android emulator. Both these emulators are a kind of app player that enables you to run any android apps on your computer. We are discussing the process of the Bluestacks emulator.
Step 2. After installing the Bluestacks, you need to launch the program. Then it will run as an artificial android OS on your PC.
Step 3. Now, click the “My Apps” button or open the play store in the emulator. Type “VSCO” in the search bar because it is available in that store. You will see the search results for the VSCO app.
Step 4. Select and install the VSCO app using this free android emulator. Within a few seconds, the installation process will end, depending on your internet connection.
Step 5. Finally, create a new account and use VSCO to edit your best pics.
How to create an account on VSCO?
After opening the VSCO app on your computer or smartphone, tap on the “Get Started” option. In the next step, sign up with your email address or phone number if you’re a new user. To complete the verification, go to the inbox of your email and click on the verification link. That’s it; you have done the job correctly.
How to install the VSCO app on MAC?
The installation process of the VSCO app for MAC is almost the same as the previous section that we have discussed. There are many websites available where you can find the VSCO cam app for MAC OS. When the installation process is finished, you should test the camera by taking some sample photos and check how the editing tools are working.
FAQ’s On VSCO
Can I buy extra filters on VSCO?
Ans: This app doesn’t allow you to purchase an individual filter. But you can try a wide range of premium filters with the VSCO X membership.
Is VSCO app free?
Ans: Yes, it’s free. There is also a premium membership feature available.
Vsco Viewer For Mac
Can I create a GIF on VSCO?
Ans: Yes, you can create a GIF on this app.
Final Words
VSCO app for PC is a simple camera and editor app. Your photos that are taken and edited on this app will get more likes and comments on social media platforms once you share them.
Admittedly, this app has the best search engine, new filters, and retouching tools. It will help if you keep connecting with other VSCO members to become an expert and glorify your photo editing sense.
Vsco Suite For Mac Download
Download VSCO Film Complete Pack for Mac free standalone setup. The VSCO Film Complete Pack for Mac is a set of presets and camera profiles developed by VSCO to achieve a specific image look.

VSCO Film Complete Pack for Mac Review
VSCO Film Complete Pack for Mac is a set of presets and camera profiles developed by VSCO to achieve a specific image look. This plugin should be very versatile for photographers shooting weddings, editorial, or personal work. It is definitely a popular aesthetic and VSCO seems to have more refined presets with each release. It comes with special camera profiles that are meant for a specific camera maker and model. If you shoot Nikon D800, after using a VSCO FILM preset the Camera Profile will be changed to a custom VSCO Nikon D800 profile within Lightroom.
The presets themselves are also split into Nikon Pro, Canon Pro and Fuji Pro (with the latest FILM 01 release), as well as Standard that should work sufficiently well with all Lightroom-supported models. It is worth noting that VSCO has offers two other distinctive tools VSCO CAM (Apple iOS camera, image editing and sharing app) and VSCO KEYS (keyboard shortcut tool to use with Lightroom 3 and 4). In short, if you want to achieve the beautiful color and tones VSCO FILM 01 can help you achieve it in the best way. You can also Download Photolemur 2.3 for Mac Free.
Features of VSCO Film Complete Pack for Mac
Excellent tool for professional photography
Provides non-destructive and quick editing
Deliver beautiful results and a streamlined workflow
A powerful collection of film and mobile emulation tools
It includes:
VSCO Film 1
VSCO Film 2
VSCO Film 3
VSCO Film 4
VSCO Film 5
VSCO Film 6
VSCO Film 7
VSCO Film Essentials
VSCO Film LUTs
VSCO Mobile Presets 01
VSCO Mobile Presets 02
VSCO Cam LUTs Continued
Technical Details for VSCO Film Complete Pack for Mac
File Name: VSCO-Film-Complete-Pack.rar
File Size: 523 MB
Developers: VSCO
System Requirements for VSCO Film Complete Pack for Mac
Adobe Photoshop Lightroom 4/5/6
Adobe Photoshop CS6/CC
Adobe Camera Raw 7/8/9
Operating Systems: OSX 10.6 or Later
Memory (RAM): 2 GB
Hard Disk Space: 2 GB
Processor: Intel Multi-core processor
Download VSCO Film Complete Pack for Mac Free
Vsco Download For Mac
Click on the button given below to download VSCO Film Complete Pack DMG for Mac free. It is a complete offline setup of VSCO Film Complete Pack DMG for Mac with the direct download link.
0 notes
Photo

Front end tooling, building your own React, and getting started with AssemblyScript
#463 — November 15, 2019
Read on the Web
JavaScript Weekly

Build Your Own React — An interestingly presented walkthrough of creating your own React-a-like from scratch. You’ll need some time (and be gentle with the scrolling) but this is an interesting way to present such a walkthrough.
Rodrigo Pombo
The Bytecode Alliance: Building A Secure-by-Default, Composable Future for WebAssembly — The Bytecode Alliance is a new industry partnership (originally between Mozilla, Fastly, Intel, and Red Hat) designed to forge WebAssembly’s ‘outside-the-browser’ future. If you’re not yet in sync with why WebAssembly outside the browser makes sense, this announcement should give you a good idea.
Mozilla Hacks
Hone Your JavaScript Skills in Just One Week — Catch up on all the JavaScript advancements and in just one week you’ll be prepared to pick up and apply whatever the web ecosystem throws at you for years to come.
Big Nerd Ranch sponsor
The Introductory Guide to AssemblyScript — AssemblyScript, a TypeScript-to-WebAssembly compiler, provides a way to get around the steep learning curve for WebAssembly and makes it easier to integrate features that need WebAssembly into typical JS projects.
Danny Guo
Results of the 2019 Front-End Tooling Survey 2019 — Over 3,000 developers took part in this front-end tooling survey, answering a wide range of questions on things such as tooling and methodologies. React and Vue leapt up in popularity since last year with jQuery and Lodash dropping. Webpack dominates in the bundler space, Jest dominates the testing space, and most of us are using ESLint.
Ashley Nolan
Brendan Eich, Inventor of JavaScript, Did a Reddit AMA — He also helped co-found Mozilla and has just launched version 1.0 of Brave, a privacy-focused browser. Several of the questions are about Brendan’s work on JavaScript and may be of interest.
Reddit
30 Seconds of Code: A Curated Collection of Useful JS Snippets — We’ve linked this project a couple of times over the years, but it has continued to get lots of updates, so if you want to do lots of interesting things with arrays, math, strings, vectors, and more, check it out. A handy resource.
30 Seconds
⚡️ Quick Releases
GreenSock 3.0 — Long standing animation system / library.
React 16.12.0 — See this week's React newsletter for more.
TUI Editor 1.4.8 — Powerful WYSIWYG Markdown editor.
ExcelJS 3.4 — Read and write to Excel spreadsheets.
Choices 9.0 — Configurable select box/text input plugin.
💻 Jobs
Frontend Developer - React (Remote or UK) — Work from anywhere. Build the next generation analytic platform serving the world's leading brands.
RethinkXSocial
Senior Software Engineer at Getty (Los Angeles, CA) — Build fantastic tools and interfaces at one of the world's most prestigious cultural heritage orgs using Linked-Open-Data, Python, Structured-CMS, Vue.js.
J. Paul Getty Trust
Find a Job Through Vettery — Make a profile, name your salary, and connect with hiring managers from top employers. Vettery is completely free for job seekers.
Vettery
📘 Articles & Tutorials
Handling null and undefined in JavaScript — What are the best strategies to minimize errors caused by values that could be null, undefined, or otherwise uninitialized at runtime?
Eric Elliott
An Early Look at the Vue 3 Composition API in the Wild — A good way to see some of the benefits of the new API.
Mateusz Rybczonek
Making an Audio Waveform Visualizer with Vanilla JavaScript — A really neat tutorial that breaks down the problem well.
Matthew Ström
Why Unit Tests Aren’t ‘Tests’
Gauge sponsor
A console Cheat Sheet — An illustrated tour of the most popular console methods for debugging code from the dev tools.
Javascript Jeep
How to Add Testing to An Existing Project — Because test-driven development is often more a dream than the reality.
Kent C Dodds
Understanding Client Side Routing by Implementing a Router in Vanilla JS
Will Taylor
How Discord Achieves Native iOS Performance with React Native — Discord, the popular gamer-aimed chat system, chose React Native very early on as the basis for their iOS app, but they’ve had to invest a lot of effort in keeping it performant.
Miguel Gaeta
Top CI Pipeline Best Practices - A Developer's Guide
Datree.io sponsor
Making Instagram.com Faster: Code Size and Execution Optimizations — The latest in a series of JavaScript performance posts from the Instagram team.
Glenn Conner
How TypeScript 3.7 Helps Quality — A look at TypeScript 3.7 through the lens of how its new features impact code quality.
Matt Eland
🔧 Code & Tools

JSON Generator: A Tool for Generating Random Data — Generate any random data you want online with agile JavaScript-powered templates. (Possibly stick with the 'old' version for now, though, the 'new' beta doesn't seem to work properly for me.)
Vazha Omanashvili
pm2 4.2 Released: The Node Production Process Manager — A very mature and widely used process manager that includes a load balancer for keeping Node apps alive forever and to reload them without downtime.
Alexandre Strzelewicz
A Much Faster Way to Debug Code Than with Breakpoints or console.log — Wallaby catches errors in your tests and code and displays them right in your editor as you type, making your development feedback loop more productive.
Wallaby.js sponsor
Ky: Tiny, Elegant Fetch-Based HTTP Client for Browsers — Makes the Fetch API tidier to use as shown here.
Sindre Sorhus
Ajv: A Fast JSON Schema Validator — Supports v5, v6, and v7 proposals and claims to be both the fastest validator for both Node and browser.
Evgeny Poberezkin
Fabric.js 3.5: A SVG-to-Canvas and Canvas-to-SVG Library — Essentially provides an interactive object model on top of an HTML5 canvas.
Fabric.js
progress-estimator: A Progress Bar and Time Estimate for Promises — Tracks time between responses to make the completion time estimates more accurate.
Brian Vaughn
vue-spotify: A Spotify Client Built with Vue.js and Vuex
gk4m
by via JavaScript Weekly https://ift.tt/2CNDcxk
0 notes
Text
Let’s focus on privacy and get rid of the clutter
We live in Information Society in which the creation and distribution of information has become the most significant economic and cultural activity. Right now a satellite or a passing drone might snap your picture. In other words, there is essentially no such thing as total privacy, online or otherwise.
Personally I like sharing thoughts and opinions with a wider audience online. And I like the convenience of using my computer, phone, or tablet to communicate, find directions, and make purchases anywhere in the world.
On the contrary, common-sense strategies, the Internet equivalent of drawing the curtains and locking your door, can significantly reduce the risk of having your personal information fall into unwelcome hands.
Many times I have heard the phrase: “I have nothing to hide”, it’s just an absurd statement. I’m sure you’re an honest, moral, law-abiding citizen. But if you tell me you have nothing to hide, I’m going to laugh in your face.
We all have secrets, and that’s as it should be. But you may not realize how much you want to keep private and how you might inadvertently give it away online.
I’m sure your are aware that every Web site you visit, every Web search, every video you watch, and every file you download leaves a trail, which includes information about your location, your device, and your browser, among other things. Parts of this trail are stored on your own computer or mobile devices as histories, caches, and cookies. Some parts are stored on the servers of search providers, advertisers, and other entities.
You should be aware that browsing the Web typically results in at least the following information being stored, for each browser you use:
- Browsing history: A list of every Web page you’ve visited, in each browser.
- Download history: A list of every file you’ve downloaded again, in each browser.
- Cookies: Textual information stored on your device by the sites you visit, or by the companies who place ads or other code on those sites. Cookies are most often simple settings or random-looking strings of characters that identify your browser uniquely, but they can also include your username, password, location, or any number of other details.
- Zombie cookies: Conventional HTTP cookies aren’t the only way browsers can store persistent data about your behavior. Records similar to cookies can be stored separately when you visit sites with content that uses Flash, Silverlight, HTML5 Web storage, etc. In some cases, the effect is to recreate cookies even after you’ve deleted them so that’s why we call them by nickname “zombie cookies”.
- Web cache(s): The contents of pages you’ve visited recently, especially images (so the page can load more quickly if you return to it) and favicons (the little icons that appear in your browser’s address bar next to the URL). Some browsers also store thumbnail images of the pages you’ve visited and similar data.
The above is only a partial list. Some sites use even sneakier techniques to squirrel away various information about you in a variety of places. In addition to all these things, your device may store a global cache of recent DNS lookups - somewhere outside your browser there may be a list of the domain names you (or your apps) most recently visited along with their IP addresses.
Web activities can follow you everywhere. That’s why the big corporate companies like Google, Microsoft, Facebook and others want to track you across accounts and devices (to get the most information about their users).
Mozilla on the other hand is a non-profit organization striving to fight for Open Web. We recently introduced Firefox Focus, private mobile browser. Firefox Focus is already available for iPhone users on App Store. Firefox Focus for Android is also close to being released.

So how is Firefox Focus different from any other mobile browser?
Focus automatically blocks trackers that follow you around the web. You can browser freely for that engagement rings, flights to Las Vegas or expensive cigars that you don’t want anybody to know about.

Firefox Focus is super simple: no tabs, no bookmarks, no pop-ups - just URL bar and extremely fast and user friendly browsing experience.

Browse like no one’s watching. The new Firefox Focus automatically blocks a wide range of online trackers — from the moment you launch it to the second you leave it. Easily erase your history, passwords and cookies, so you won’t get followed by things like unwanted ads.

Accessibility of information is one of the most powerful aspects of the Web. It is all the more powerful when anonymity is protected.
We know from copious user research and constant community feedback that being able to browse the web without stressing about being tracked or served unwanted ads is a big deal.
For the last few weeks I have been using Firefox Focus on daily basis on Android device. I’m really happy to see that even pre-release version is stable and extremely fast. Here is a sneak peak of Firefox Focus localized for Slovenian market.

On iOS Firefox Focus is already available in more than 27 languages, covering billions of users around the world.
Be sure to follow me for more updates about Firefox Focus for Android and the date when it will be released on Google Play.
Till next time ...
Cheers,
Nino Vranešič
0 notes
Text
Civic Looks to Expand Adoption With App-to-App Developer Tool
If blockchain-based identity platform Civic is to go mainstream, then making it simple for as many businesses and consumers as possible to start using its app will be key.
“Consumer adoption may take a while. Hopefully we have a hit that takes off,” Vinny Lingham, CEO and founder at Civic, said on stage at Money 20/20, in a fireside chat with Bruce Silcoff, CEO of blockchain-based ID company Shyft, and moderator James Mirfin, global head of digital identity at Refinitiv.
To that end, the company is aiming to attract more partners with its latest solution, Civic Connect, an integration tool that will allow mobile app developers to integrate the Civic app directly into their own apps as a way to authenticate users. Civic made the announcement on October 21, 2018, during the Las Vegas event.
Civic Connect includes two libraries: One is an Android library, the other, an iOS library. The library tools, both available on Github, allow a partner app to include a “Connect with Civic” icon in their own app with only a few lines of code.
Tapping on that icon takes a user from the partner app over to the Civic App, where the user can approve the exchange of login credentials or personal information, and then back to the partner app again.
“They are basically transitioning screens,” JP Bedoya, vice president of product and design at Civic, told Bitcoin Magazine.
“If you were logging into Wikihow, for example, one of Civic’s partners, you would just use your Civic identity and with that you will login in a matter of seconds, create an account and whatnot,” he said. “So CivicConnect is an extension of that. Now you can use that Civic identity in a seamless way from any mobile application that works with Civic,” he said.
The Civic app itself works like a digital wallet, but, instead of storing funds, it stores personally identifiable information, which you can use to log into another app without a username or password or to share know-your-customer (KYC) data, depending on what an app requires.
The library tools allow developers to add two-factor authentication (2FA), anonymous private 2FA and onboard verified users in a customized flow to streamline the experience, Civic said.
The way Bedoya sees it, “If you think of all of the millions of apps out there today and you have to create a username and password in all of them, now you can just use your Civic app.”
Private ID Verification Transactions
Civic wants to allow consumers to regain control of their identity. As Lingham explained it, in talking to Bitcoin Magazine, imagine if you handed your driver’s license to a bartender to show you were of legal drinking age, but then the bartender memorized the information, or then the Department of Motor Vehicles, the agency that issues licenses, had a way of becoming aware of that (and every) transaction you made using your driver’s license?
“It would just be freaky,” he said. “We think about it that way. How do you create a world where you have an ID without a record being tracked? And that is why the blockchain makes sense. Now the bartender can verify independently, and only you and he know the transaction occurred.”
Civic stores attestations on the Bitcoin blockchain, while ID information is encrypted and stored on a user’s own device — not on Civic’s servers. Transactions, which occur when you show your ID to another app using Civic, are handled by smart contracts on the Ethereum platform. Eventually, the project plans to move to RSK, but it is not there yet.
The Civic project has 1 billion CVC tokens, a third of which it sold in a 2017 token sale to raise $33 million to build out its platform.
But while Civic has big plans for its future, competition in the space is stiff. Right now, Lingham explained, there are about 40 or 50 other blockchain-based identity services on the market — and “thousands” of companies trying to handle ID in a centralized fashion.
“No good idea is born alone,” Lingham said. Nevertheless, he thinks Civic stands a good chance of coming out ahead. “The real question is how do they compete with us?” he said of his blockchain-based ID competitors. “We got here first. We have a lot of IP that has been developed and a string of patents, so we are first.” (Civic was originally founded in 2016.)
Civic has also been adding new partners, companies and entrepreneurs that need its ID services. According to Lingham, Civic has 100 partners so far. Its best-known partner is Anheuser-Busch. Partners in the crypto space include Brave, ShapeShift and 0x, and it's been able to sign up several ICO projects that need to follow KYC before selling tokens.
Lingham feels consumers will be drawn to Civic because of its security and privacy. “We don’t make money out of monetizing your personal information like the big guys do,” he said. “When you use Facebook, let’s be frank, they are tracking every time you use it to open an account in an app, so they can target ads at you, and Google as well.”
Of course, Facebook and Google already have a gargantuan user base, while Civic is just getting its feet wet in the ID space.
“We could take the approach, that their user base has such a big unassailable lead,” he said. “Or, we could take the approach that this is important enough that people who care will switch to an alternative, and over time we, as an industry, will provide a better solution.”
This article originally appeared on Bitcoin Magazine.
from InvestmentOpportunityInCryptocurrencies via Ella Macdermott on Inoreader https://bitcoinmagazine.com/articles/civic-looks-expand-adoption-app-app-developer-tool/
0 notes
Text
The best free blogging site of 2018
New Post has been published on https://www.etechwire.com/the-best-free-blogging-site-of-2018/
The best free blogging site of 2018
Free blogging sites have come a long way in recent years, and it’s now easier than ever to create a professional-looking blog to share a hobby with likeminded people, express your opinions, and establish an online presence.
These free blogging sites are aimed at hobbyist bloggers – blogs are created and managed online, and hosted on the blogging platform’s own servers. If you want to create a self-hosted blog, the downloadable version of WordPress is an excellent option, with total flexibility, support for third-party plugins, and as much storage as your hosting plan allows.
If you’re interested in making a static website rather than an online journal, take a look at our guide to the best free website builders.
You can host a WordPress blog yourself, or create one online and have it hosted at wordpress.com
1. WordPress
Advanced features, plugins and a generous storage allowance
Powerful customization options
Useful analytics
Active support community
Powerful and highly customizable, WordPress is a brilliant platform for blogs of any size, and bloggers of any level of experience.
Creating your first blog is very straightforward, with a simple wizard that guides you through the process of choosing a name and suitable theme. You can leave it there and begin writing posts immediately, but the real fun lies in the more advanced editor, which lets you customize virtually every aspect of your blog’s appearance.
Unlike some blogging sites, WordPress isn’t a drag-and-drop affair, and you’ll have to familiarize yourself with its system of menus. It’s well worth the effort, though, and enables you to create something truly personal. The editor also lets you create static pages – like a writer’s biography, for example.
The post-writing interface is much like an ordinary desktop word processor (though some options are presented in a toolbar at the top, while others are in a menu at the side, which can be a little confusing at first). Again, time spent getting to know the interface is rewarded with advanced features like customizable social media sharing buttons, geotagging, and the ability to pick a custom style for individual posts.
Sometimes you might want to create a photo gallery, for example, and other times a more text-focused style would be more appropriate. You can also view and edit the HTML source.
As your blog grows, WordPress lets you track its stats, including page views, visitors, likes and comments over time. You can also see how readers reach your site, which content they viewed, and where they are in the world, so you can tailor your content accordingly.
Your site is hosted on WordPress servers, with an address in the format yoursite.wordpress.com. Users of the free service don’t get email or live chat support, but the WordPress community forums are very active and questions are usually answered within a few minutes.
WordPress displays ads on free blogs, but provided you can live with that, it’s undoubtedly the best free blogging site around.
Try it online: WordPress
Blogger has been around for many years, but has kept up with current trends and technology, including responsive blog templates
2. Blogger
Boasts mobile-friendly features and Google app integration
Very accessible for newbies
Impressive selection of templates
Not as powerful as WordPress
Blogger is another superb blogging platform. It’s not quite as powerful as WordPress, but more accessible for new users, which comes as no surprise when you learn that it’s owned by Google.
Blogger offers an excellent selection of templates, all of which include mobile versions optimized for smaller screens – a very sensible addition with so many people accessing online content through smartphones.
Blogger’s post-editing tool is much like WordPress, but offers fewer options. As a result, its toolbars are less confusing – a trade-off between power and usability.
One of Blogger’s best features is its integration with other Google apps and services. For example, it uses your Google Drive account to store images and other files for your blog. Google Drive gives you 15GB of space free, so Blogger is a good choice if you’re planning to share a lot of high-res photos.
Spam comments are a big problem on blogs, so Blogger’s automatic spam filter can help save your sanity. You can monitor comments via Blogger’s dashboard, which also lets you see visitor stats. There are some handy visualizations here, including a world map to show the global distribution of your readers.
Your blog will have an address in the format yoursite.blogger.com, and, like all Google services, will include ads. Support is available through the Blogger user forum, which is very active but has a strange layout that can be a little off-putting.
In all other respects, Blogger is brilliant – one of the best free blogging sites if you prioritize ease of use over flexibility and are a fan of the Google ecosystem.
Try it online: Blogger
Wix offers a choice of blog building tools, making the process as simple or involved as you like
3. Wix
Great for new users, with free stock photos to get you started
ADI feature is great for total beginners
Excellent on the media front
Limited storage and traffic allowance
Wix is our favorite general-purpose free website builder, and is great for creating stylish blogs too. Its chief drawback is storage – you have just 500MB for your files and data traffic is restricted to 500MB per month, so you’ll need to upgrade to a premium plan if your blog really takes off.
Once you’ve created an account, select ‘blog’ from the list of categories, then choose either Wix Artificial Design Intelligence (ADI) or Wix Editor. Wix ADI asks a series of very simple questions, then builds a site around your answers – ideal if you’ve never created a site before and find the idea intimidating. Wix Editor is very straightforward too (simpler than Blogger or WordPress), but is much more flexible than ADI and will be a better choice for most users.
One of Wix’s best features is its choice of image sources, including your hard drive, social media, free images from Wix itself, and pictures from its partner stock photography site Bigstock. If your blog posts are text-heavy, these free images are a great way to make them look more appealing.
On the downside, your custom wix.com URL will include a string of not-too-snappy letters and numbers that might make it hard to memorize.
That aside, its resources and friendly approach mean Wix just pips Weebly to third place. Free Wix sites include a tiny ad for the company in the top-right and another at the bottom, but these won’t spoil the look for your blog.
Try it online: Wix
Blogs on Weebly are built from a combination of content blocks
4. Weebly
Drag-and-drop your way to a smart looking blog
Simple but powerful blog building
Neat extras like post previewing
Limited to 500MB of storage
Weebly takes a modular approach to blog-building, with a drag-and-drop editor that lets you choose which elements to add to your site, and where.
Pick a basic template, then plonk various types of content onto the page, including social media links, text, images, maps, and sections of code. It’s a refreshingly simple way to build a blog that feels unique to you, but doesn’t require any messing about with menus.
It’s worth noting, however, that certain content blocks can only be positioned in certain areas; it isn’t a total free-for-all. This makes sense – forcing you to stick within the confines of your chosen template stops the page looking messy – but you might find it limiting.
Blog posts are made in the same way: drag text boxes, picture frames, buttons and page breaks into position, then click to edit them. One particularly nice feature is the ‘secret draft link’, which lets you preview your unpublished post, and even share it with others via email before releasing it into the wild.
Weebly has some other interesting tricks up its sleeve too, including an area for pasting in Google Analytics tracking code (though it doesn’t offer analytics itself).
As with Wix, you’re only given 500MB for uploaded content, so photographers might want to look elsewhere. Weebly puts an ad in your site’s footer, but it doesn’t obscure any of your content.
Try it online: Weebly
Penzu is a personal blogging tool that lets you create your own private diary
5. Penzu
A secure journal for your private thoughts
Emphasis on privacy and security
Free mobile apps
Some pressure to upgrade to paid version
Whereas the other free blogging sites are designed to get as many eyeballs on your posts as possible, Penzu is the equivalent of a locked diary stashed in a safe.
Penzu is a journal platform that makes your posts private by default and locks them down with at least one password (even after you’re logged in, you need a second one to read or edit your posts). That’s because it’s designed for private thoughts and personal reflection. There are free apps for iOS and Android that enable you to update your Penzu diary anywhere, but the contents are for your eyes only.
Penzu isn’t a tool for self-promotion, so although it’s far from ugly, it understandably focuses on function rather than looks. Custom colors and backgrounds come at a price – currently $20 (about £14, AU$25) per year.
It’s a shame that 128-bit AES encryption is also limited to the paid-for version, and there’s a fair amount of pressure to upgrade. Extra options are often dangled under your nose then yanked away, but the core offering is a good one, and if you simply want a place to record your thoughts and practise writing, Penzu could be just what you need.
Try it online: Penzu
0 notes
Text
Top 15 Reliable Tools and Resources for Designers in 2018
Advertise here via BSA
The only thing certain about technology is that it is constantly changing. The same is true with Internet design. The preferred way to present information has become through graphics. This trend is giving graphic designers a field day. However, at the same time, it requires them to constantly invest in new tools and resources. In the end, they have to keep up with the competition.
Collaboration via business trips and over the phone is becoming passé as well. This is another area in which designers require the latest in collaboration-assisting tools. They need to do so if they are to meet ever more stringent project deadlines.
The good news is that most of these new tools are both easy to work with and affordable. So, this might be a perfect time to shed some old favorites that aren’t really getting the job done. See what 2018 has to offer.
1. Mason
Mason allows you to build, edit, and manage your front-end experiences from a central platform—all without the need for code. It enables your team to do the same, thereby speeding up collaboration and making it more efficient.
Once you’ve incorporated a Mason feature into a website or app, downstream clients, developers, or marketers can edit it when needed, avoiding the need to initiate a new development cycle. Since these features, consisting of pre-coded blocks, are designed and developed with reusability in mind, you’ll never find yourself wasting time reinventing the wheel.
Mason offers solutions for experiences ranging from user login to password reset to social sign-in to content feeds and more—front-end experiences virtually every web product needs. And, they’re insanely secure: Data is sent directly from a client’s server to your own via encrypted transactions, so you and the client are the only ones that will see your data.
The pre-packaged solutions Mason provides address common product requirements and are completely customizable; create a fully branded login flow and deploy it, live inside your app, in literal minutes. In addition, this modular content will make page management much simpler for every page you create. Mason’s modular content is a win for you, for your team, and for your users. Try it free today!
2. Mobirise
Working from a single platform can have its advantages but doing so is not without limitations. Since Mobirise is an offline builder you’re not tied down to a platform, you have total control over your work, and you can host your site anywhere you choose to.
To see what Mobirise can do for you, simply visit the site and download your copy. It’s free for both personal and commercial use. Everything is drag and drop with no coding required, and since Mobirise is built around a Bootstrap 4 or Google AMP framework, your websites and apps will be lightning fast and 100% mobile friendly.
This is an ideal tool for creating small or medium-size websites, portfolios, landing pages, and promo sites. Since it’s so intuitive to use, it’s perfect for non-techies as well, for anyone who prefers a visual approach to design, and for fast prototyping.
3. Elementor
Elementor provides another free and easy way to build your WordPress websites. This open source page builder will let you build stunning websites without any need for coding. Its fast, it works with any template, and all your editing is done on the front end and in real time.
130 professionally-designed templates come with the package, Elementor works with any theme, its most popular features include advanced mobile editing capabilities, a visual form builder, a menu builder, and much more.
If you’re wondering if this is the right tool for you, consider that in under 2 years Elementor has acquired a base of more than 900,000 users, making it the #1 WordPress website builder. With Elementor 2.0 releases in full swing, it’s only going to get better!
4. Goodiewebsite
When it’s time to get your website coded, you’ll naturally want to place it in the hands of professionals. Not doing so only increases your long term expenditures, which is why the Goodiewebsite platform makes good sense.
This cost-effective service is best-suited for small projects like 1-10 page websites and other simple WordPress sites. Prices start at $999.
5. monday.com
The monday.com team management tool is equally suited for teams of two or teams of thousands, and it is used by both startups and Fortune 500 companies. It’s especially popular among non-tech teams because of its intuitive use.
Since monday.com centralizes everything, encourages transparency, and boosts collective productivity, every one of its users feels both more empowered and more important in the greater scheme of things.
6. A2’s Fully Managed WordPress Hosting
It can at times be difficult to find an affordable and reliable service if you have specific hosting needs. A2 Hosting offers a range of solutions that provide scalable, fast, secured, and optimized WordPress hosting.
Easy site staging is a key feature, as is the 20XFaster Turbo feature that guarantees super-fast page loading. A2 Hosting updates automatically to ensure that it is always in sync with WordPress.
7. Uncode – Creative Multiuse WordPress Theme
With Uncode, you don’t have to start a design from scratch, nor do you need to concern yourself with coding. This powerful, user friendly WP theme has the functionality you need, including several exciting new features that include a powerful Gallery Manager, Slides Scroll, and Shape Dividers.
Take a stroll through Uncode’s website model library to see the possibilities and how with Uncode you can keep “creator’s block” at bay.
8. Houzez
No matter what features a multipurpose theme may offer, using a specialty theme like Houzez has its distinct advantages. Created with the real estate sector in mind, Houzez’ features include multiple listings format options, advanced property search capabilities, geolocating capabilities, and payment and membership systems.
Houzez also offers such unique features as property management system, custom fields builder, search composer, which make it is by far your best bet if you have a realtor for a client.
9. The Hanger
The Hanger is modern, it’s classy, it’s easy to set up, and you can expect reliable and friendly support. It provides an easy way for designers to set up and build eCommerce WordPress sites for their clients.
Although The Hanger makes building an eCommerce site a straightforward process, its customization tools allow the designer to align its looks to perfectly fit a client’s brand.
10. LayerSlider
This premium animation platform takes you far beyond what the name implies. With LayerSlider you can not only create sensational layer effects, but image galleries, animated page blocks, popups, and slideshows as well.
LayerSlider even has the tools needed to build complete websites. It’s drag and drop, responsive, SEO friendly, and easy to use.
11. WhatFontis.com
Maybe you saw a font used on an ad you wished you designed or the client cuts the chase and says: “why don’t we write that headline with THAT font”. In both cases you find yourself searching for the font name.
WhatFontis.com’s identification tool can take care of this mundane task. With a database of 450,000 commercial and free fonts the automatic AI system will quickly locate a match or similar alternatives.
12. FFonts.net
FFonts.net features a directory of 75,000 free fonts. It has the necessary tools to help you find what you want, quickly and easily. It’s simply a matter of browsing or searching, previewing, and downloading. Search for a specific font, or preview several of potential interest.
To make sure of your choices, you can write out strings of text to see how the fonts will look in actual use.
13. Fluid UI
Fluid UI is a wireframing, mockup, and prototyping tool designed to enhance the collaborative design process. Fluid ID features a set of component libraries for desktop, iOS, and Android applications.
It’s a handy tool for designers, product managers, and distributed teams to have on hand as its features include chat, interactive video presentation, and preview sharing capabilities.
14. Pixpa
Creatives not only love Pixpa’s all-in-one portfolio website builder because of the results they can achieve but because they don’t have to use multiple tools & services to get the job done.
Pixpa portfolio websites come with an inbuilt eCommerce store, as well as tools to set up client proofing and blogging features. Best-in-class hosting, and 24/7 support is included.
15. wpDataTables
wpDataTables is by far the premier WordPress plugin for creating tables and charts. It is so popular that more than a few web designers have switched over to WordPress to have the opportunity to use it. wpDataTables accepts data in many formats from many different sources.
It manages huge amounts of complex data in mere seconds to produce colorful, responsive, informative, and maintainable charts and tables. wpDataTables has far too many valuable features to list here.
Conclusion
Do you want to speed up your workflow and enjoy an uptick in your productivity? Or, have you been looking for a solution to a particularly vexing design problem? There should be something here for you.
We’ve covered a wide range of tools and resources. They encompass everything from hosting to chart and table building. There are also multipurpose and specialty WP themes. Hopefully, you’ve found at least one item to brighten your day.
Sponsors
Professional Web Icons for Your Websites and Applications
Top 15 Reliable Tools and Resources for Designers in 2018 published first on https://appspypage.tumblr.com/
0 notes
Text
How to Make a Game Like Candy Crush with SpriteKit and Swift: Part 1
Update note: This SpriteKit tutorial has been updated for Xcode 9.3 and Swift 4.1 by Kevin Colligan. The original tutorial was written by Matthijs Hollemans and subsequently updated by Morten Faarkrog.
In this three-part “How to” tutorial with SpriteKit and Swift series, you’ll learn how to make a game like Candy Crush Saga named Cookie Crunch Adventure. Yum, that sounds even better than candy!
(You’re here) In the first part, you’ll put some of the foundation in place. You’ll set up the gameplay view, the sprites, and the logic for loading levels.
In the second part you’ll focus on detecting swipes, swapping cookies, and finding and removing cookie chains.
In the third part, you’ll work on refilling the level with new yummy cookies after successful swipes. You’ll complete the gameplay by adding support for scoring points, winning and losing, shuffling the cookies, and more.
In the process of going through this tutorial, you’ll get some excellent practice with Swift techniques such as enums, generics, subscripting, closures, and extensions. You’ll also learn a lot about game architecture and best practices.
There’s a lot to cover, so dive right in!
Note: This Swift tutorial assumes you have working knowledge of SpriteKit and Swift. If you’re new to SpriteKit, check out the SpriteKit for beginners tutorial or our book, 2D iOS & tvOS Games by Tutorials. For an introduction to Swift, see our Swift tutorials.
Getting Started
Cookie Crunch will use an architecture that is very much like the model-view-controller, or MVC, pattern that you may know from non-game apps:
The data model will consist of Level, Cookie and a few other classes. The models will contain the data, such as the 2D grid of cookie objects, and handle most of the gameplay logic.
The views will be GameScene and the SKSpriteNodes on the one hand, and UIViews on the other. The views will be responsible for showing things on the screen and for handling touches on those things. The scene in particular will draw the cookie sprites and detect swipes.
The view controller will play the same role here as in a typical MVC app: it will sit between the models and the views and coordinate the whole shebang.
All of these objects will communicate with each other, mostly by passing arrays and sets of objects to be modified. This separation will give each object only one job that it can do, totally independent of the others, which will keep the code clean and easy to manage.
Use the Download Materials button at the top or bottom of this tutorial to download the starter project. Open it and run it in the simulator, and you’ll see you’ve got the foundations in place for your game:
A tasty background image
Labels for your Target, Moves and Score
A Shuffle button
Who ate all the cookies?
The cookies are missing, of course. You’ll add those soon. But first, it’s time to tour the starter project.
GameScene.swift
The GameScene includes sound properties, which allow your app to load all sounds once and reuse them as needed:
let swapSound = SKAction.playSoundFileNamed("Chomp.wav", waitForCompletion: false) let invalidSwapSound = SKAction.playSoundFileNamed("Error.wav", waitForCompletion: false) let matchSound = SKAction.playSoundFileNamed("Ka-Ching.wav", waitForCompletion: false) let fallingCookieSound = SKAction.playSoundFileNamed("Scrape.wav", waitForCompletion: false) let addCookieSound = SKAction.playSoundFileNamed("Drip.wav", waitForCompletion: false)
It also loads the background image from the asset catalog. Since the scene’s anchorPoint is (0.5, 0.5), the background image will always be centered on all iPhone screen sizes:
override init(size: CGSize) { super.init(size: size) anchorPoint = CGPoint(x: 0.5, y: 0.5) let background = SKSpriteNode(imageNamed: "Background") background.size = size addChild(background) }
GameViewController
There are two important GameViewController properties to note. The scene variable provides a reference to the GameScene.
The lazy backgroundMusic declares a variable and initializes it in the same statement, a common iOS pattern:
lazy var backgroundMusic: AVAudioPlayer? = { guard let url = Bundle.main.url(forResource: "Mining by Moonlight", withExtension: "mp3") else { return nil } do { let player = try AVAudioPlayer(contentsOf: url) player.numberOfLoops = -1 return player } catch { return nil } }()
The initialization code sits in a closure. It loads the background music MP3 and sets it to loop forever. Because the variable is marked lazy, the code from the closure won’t run until backgroundMusic is first accessed.
The GameScene is set up in viewDidLoad(). You’ll come back to that later.
The IBOutlets and IBActions correspond to objects in the Main.storyboard. You’ll connect them in the later part of the tutorial.
Main Storyboard
Remember those labels and the Shuffle button you saw in the simulator? Those were created in the Main.storyboard. They don’t work now, but you’ll fix that before we’re done.
UIKit and SpriteKit get along quite nicely
The Target, Moves and Score labels appear in nested stack views at the top of the screen. If you need a refresher, check out our Stack Views tutorial.
Assets
The starter project contains a bunch of audio and image files to make your game sound and look tasty. Audio files are in a folder named Sounds.
Images are either in the global assets catalog (Assets.xcassets), or in a texture atlas. In Xcode, a texture atlas looks like any other folder, with a name that ends in .atlas. The special name tells Xcode to pack the images into a texture atlas when it builds the game, dramatically improving performance. To learn more about texture atlases, check out our SpriteKit Animations and Texture Atlases tutorial.
Take a look inside Sprites.atlas to find the matching-images for your game: croissants, cupcakes, donuts (yum!). Grid.atlas contains grid images (less yum).
Other items of note:
LevelData.swift uses Swift 4’s new Decodable API to make parsing the JSON files a snap. You’ll use it to create levels. See this JSON Parsing screencast for more.
Array2D.swift is a helper file which makes it easier to create two-dimensional arrays.
Tile.swift is empty now. But contains some hints for adding jelly.
That does it for the starter project tour!
Add Your Cookies
Enough with the pre-heating, let’s start baking! Your next steps are to:
Create the Cookie class.
Create the Level class.
Load levels from JSON files.
Serve up your cookies atop background tiles — mom taught you to always use a plate, after all!
The Cookie Class
This game’s playing field consists of a grid, 9 columns by 9 rows. Each square of this grid can contain a cookie.
Column 0, row 0 is in the bottom-left corner of the grid. Since the point (0,0) is also at the bottom-left of the screen in SpriteKit’s coordinate system, it makes sense to have everything else “upside down” — at least compared to the rest of UIKit. :]
To begin implementing this, you need to create the class representing a cookie object. Go to File\New\File…, choose the iOS\Source\Swift File template and click Next. Name the file Cookie.swift and click Create.
Replace the contents of Cookie.swift with the following:
import SpriteKit // MARK: - CookieType enum CookieType: Int { case unknown = 0, croissant, cupcake, danish, donut, macaroon, sugarCookie } // MARK: - Cookie class Cookie: CustomStringConvertible, Hashable { var hashValue: Int { return row * 10 + column } static func ==(lhs: Cookie, rhs: Cookie) -> Bool { return lhs.column == rhs.column && lhs.row == rhs.row } var description: String { return "type:\(cookieType) square:(\(column),\(row))" } var column: Int var row: Int let cookieType: CookieType var sprite: SKSpriteNode? init(column: Int, row: Int, cookieType: CookieType) { self.column = column self.row = row self.cookieType = cookieType } }
You use two protocols that will pay dividends later:
CustomStringConvertible: This will make your print statements a lot easier to read.
Hashable: Cookies will later be used in a Set and the objects that you put into a set must conform to Hashable. That’s a requirement from Swift.
The column and row properties let Cookie keep track of its position in the 2D grid.
The sprite property is optional, hence the question mark after SKSpriteNode, because the cookie object may not always have its sprite set.
The cookieType property describes the — wait for it — type of the cookie, which takes a value from the CookieType enum. The type is really just a number from 1 to 6, but wrapping it in an enum allows you to work with easy-to-remember names instead of numbers.
You will deliberately not use cookie type Unknown (value 0). This value has a special meaning, as you’ll learn later on.
Each cookie type number corresponds to a sprite image:
In Swift, an enum isn’t useful only for associating symbolic names with numbers; you can also add functions and computed properties to an enum. Add the following code inside the enum CookieType:
var spriteName: String { let spriteNames = [ "Croissant", "Cupcake", "Danish", "Donut", "Macaroon", "SugarCookie"] return spriteNames[rawValue - 1] } var highlightedSpriteName: String { return spriteName + "-Highlighted" }
The spriteName property returns the filename of the corresponding sprite image in the texture atlas. In addition to the regular cookie sprite, there is also a highlighted version that appears when the player taps on the cookie.
The spriteName and highlightedSpriteName properties simply look up the name for the cookie sprite in an array of strings. To find the index, you use rawValue to convert the enum’s current value to an integer. Recall that the first useful cookie type, croissant, starts at 1 but arrays are indexed starting at 0, so you need to subtract 1 to find the correct array index.
Every time a new cookie gets added to the game, it will get a random cookie type. It makes sense to add that as a function on CookieType. Add the following to the enum as well:
static func random() -> CookieType { return CookieType(rawValue: Int(arc4random_uniform(6)) + 1)! }
This calls arc4random_uniform(_:) to generate a random number between 0 and 5, then adds 1 to make it a number between 1 and 6. Because Swift is very strict, the result from arc4random_uniform(_:) — UInt32 — must first be converted to Int, then you can convert this number into a proper CookieType value.
Now, you may wonder why you’re not making Cookie a subclass of SKSpriteNode. After all, the cookie is something you want to display on the screen. If you’re familiar with the MVC pattern, think of Cookie as a model object that simply describes the data for the cookie. The view is a separate object, stored in the sprite property.
This kind of separation between data models and views is something you’ll use consistently throughout this tutorial. The MVC pattern is more common in regular apps than in games but, as you’ll see, it can help keep the code clean and flexible.
The Level Class
Now let start building levels. Go to File\New\File…, choose the iOS\Source\Swift File template and click Next. Name the file Level.swift and click Create.
Replace the contents of Level.swift with the following:
import Foundation let numColumns = 9 let numRows = 9 class Level { private var cookies = Array2D<Cookie>(columns: numColumns, rows: numRows) }
This declares two constants for the dimensions of the level, numColumns and numRows, so you don’t have to hardcode the number 9 everywhere.
The property cookies is the two-dimensional array that holds the Cookie objects, 81 in total, 9 rows of 9 columns.
The cookies array is private, so Level needs to provide a way for others to obtain a cookie object at a specific position in the level grid.
Add the code for this method to end of Level:
func cookie(atColumn column: Int, row: Int) -> Cookie? { precondition(column >= 0 && column < numColumns) precondition(row >= 0 && row < numRows) return cookies[column, row] }
Using cookie(atColumn: 3, row: 6) you can ask the Level for the cookie at column 3, row 6. Behind the scenes this asks the Array2D for the cookie and then returns it. Note that the return type is Cookie?, an optional, because not all grid squares will necessarily have a cookie.
Notice the use of precondition to verify that the specified column and row numbers are within the valid range of 0-8.
Now to fill up that cookies array with some cookies! Later on you will learn how to read level designs from a JSON file but for now, you’ll fill up the array yourself, just so there is something to show on the screen.
Add the following two methods to the end of Level:
func shuffle() -> Set<Cookie> { return createInitialCookies() } private func createInitialCookies() -> Set<Cookie> { var set: Set<Cookie> = [] // 1 for row in 0..<numRows { for column in 0..<numColumns { // 2 let cookieType = CookieType.random() // 3 let cookie = Cookie(column: column, row: row, cookieType: cookieType) cookies[column, row] = cookie // 4 set.insert(cookie) } } return set }
Both methods return a Set. A Set is a collection, like an array, but it allows each element to appear only once, and it doesn't store the elements in any particular order.
shuffle() fills up the level with random cookies. Right now it just calls createInitialCookies(), where the real work happens. Here's what it does, step by step:
The method loops through the rows and columns of the 2D array. This is something you’ll see a lot in this tutorial. Remember that column 0, row 0 is in the bottom-left corner of the 2D grid.
Then it picks a random cookie type using the method you added earlier.
Next, it creates a new Cookie and adds it to the 2D array.
Finally, it adds the new Cookie to a Set. shuffle() returns this set of cookies to its caller.
One of the main difficulties when designing your code is deciding how the different objects will communicate with each other. In this game, you often accomplish this by passing around a collection of objects, usually a Set or Array.
In this case, after you create a new Level and call shuffle() to fill it with cookies, the Level replies, “Here is a set with all the new Cookies I just added.” You can take that set and, for example, create new sprites for all the cookies it contains. In fact, that’s exactly what you’ll do in the next section.
Build the app and make sure you're not getting any compilation errors.
Open GameScene.swift and add the following properties to the class:
var level: Level! let tileWidth: CGFloat = 32.0 let tileHeight: CGFloat = 36.0 let gameLayer = SKNode() let cookiesLayer = SKNode()
The scene has a public property to hold a reference to the current level.
Each square of the 2D grid measures 32 by 36 points, so you put those values into the tileWidth and tileHeight constants. These constants will make it easier to calculate the position of a cookie sprite.
To keep the SpriteKit node hierarchy neatly organized, GameScene uses several layers. The base layer is called gameLayer. This is the container for all the other layers and it’s centered on the screen. You’ll add the cookie sprites to cookiesLayer, which is a child of gameLayer.
Add the following lines to init(size:) to add the new layers. Put this after the code that creates the background node:
addChild(gameLayer) let layerPosition = CGPoint( x: -tileWidth * CGFloat(numColumns) / 2, y: -tileHeight * CGFloat(numRows) / 2) cookiesLayer.position = layerPosition gameLayer.addChild(cookiesLayer)
This adds two empty SKNodes to the screen to act as layers. You can think of these as transparent planes you can add other nodes in.
Remember that earlier you set the anchorPoint of the scene to (0.5, 0.5)? This means that when you add children to the scene their starting point (0, 0) will automatically be in the center of the scene.
However, because column 0, row 0 is in the bottom-left corner of the 2D grid, you want the positions of the sprites to be relative to the cookiesLayer’s bottom-left corner, as well. That’s why you move the layer down and to the left by half the height and width of the grid.
Adding the sprites to the scene happens in addSprites(for:). Add it after init(size:):
func addSprites(for cookies: Set<Cookie>) { for cookie in cookies { let sprite = SKSpriteNode(imageNamed: cookie.cookieType.spriteName) sprite.size = CGSize(width: tileWidth, height: tileHeight) sprite.position = pointFor(column: cookie.column, row: cookie.row) cookiesLayer.addChild(sprite) cookie.sprite = sprite } } private func pointFor(column: Int, row: Int) -> CGPoint { return CGPoint( x: CGFloat(column) * tileWidth + tileWidth / 2, y: CGFloat(row) * tileHeight + tileHeight / 2) }
addSprites(for:) iterates through the set of cookies and adds a corresponding SKSpriteNode instance to the cookie layer. This uses a helper method, pointFor(column:, row:), that converts a column and row number into a CGPoint that is relative to the cookiesLayer. This point represents the center of the cookie’s SKSpriteNode.
Open GameViewController.swift and add a new property to the class:
var level: Level!
Next, add these two new methods:
func beginGame() { shuffle() } func shuffle() { let newCookies = level.shuffle() scene.addSprites(for: newCookies) }
beginGame() kicks off the game by calling shuffle(). This is where you call Level's shuffle() method, which returns the Set containing new Cookie objects. Remember that these cookie objects are just model data; they don’t have any sprites yet. To show them on the screen, you tell GameScene to add sprites for those cookies.
The only missing piece is creating the actual Level instance. Add the following lines in viewDidLoad(), just before the code that presents the scene:
level = Level() scene.level = level
After creating the new Level instance, you set the level property on the scene to tie together the model and the view.
Finally, make sure you call beginGame() at the end of viewDidLoad() to set things in motion:
beginGame()
Build and run, and you should finally see some cookies:
Loading Levels from JSON Files
Not all the levels in Candy Crush Saga have grids that are a simple square shape. You will now add support for loading level designs from JSON files. The five designs you’re going to load still use the same 9x9 grid, but they leave some of the squares blank.
Look in the Levels folder in the starter project and you’ll see several files.
Click on Level_1.json to look inside. You’ll see that the contents are structured as a dictionary containing three elements: tiles, targetScore and moves.
The tiles array contains nine other arrays, one for each row of the level. If a tile has a value of 1, it can contain a cookie; a 0 means the tile is empty.
Open Level.swift and add a new property and method:
private var tiles = Array2D<Tile>(columns: numColumns, rows: numRows) func tileAt(column: Int, row: Int) -> Tile? { precondition(column >= 0 && column < numColumns) precondition(row >= 0 && row < numRows) return tiles[column, row] }
The tiles variable describes the structure of the level. This is very similar to the cookies array, except now you make it an Array2D of Tile objects.
Whereas the cookies array keeps track of the Cookie objects in the level, tiles simply describes which parts of the level grid are empty and which can contain a cookie:
Wherever tiles[a, b] is nil, the grid is empty and cannot contain a cookie.
Now that the instance variables for level data are in place, you can start adding the code to fill in the data.
Add the new init(filename:) initializer to Level.swift:
init(filename: String) { // 1 guard let levelData = LevelData.loadFrom(file: filename) else { return } // 2 let tilesArray = levelData.tiles // 3 for (row, rowArray) in tilesArray.enumerated() { // 4 let tileRow = numRows - row - 1 // 5 for (column, value) in rowArray.enumerated() { if value == 1 { tiles[column, tileRow] = Tile() } } } }
Here's what this initializer does, step-by-step:
Load the data level from a specific JSON file. Note that this function may return nil — it returns an optional — and you use guard to handle this situation.
Create a “tiles” array.
Step through the rows using built-in enumerated() function, which is useful because it also returns the current row number.
In SpriteKit (0, 0) is at the bottom of the screen, so you have to reverse the order of the rows here. The first row you read from the JSON corresponds to the last row of the 2D grid.
Step through the columns in the current row. Every time you find a 1, create a Tile object and place it into the tiles array.
You still need to put this new tiles array to good use. Inside createInitialCookies(), add an if-clause inside the two for-loops, around the code that creates the Cookie object:
// This line is new if tiles[column, row] != nil { let cookieType = ... ... set.insert(cookie) }
Now the app will only create a Cookie object if there is a tile at that spot.
One last thing remains: In GameViewController.swift’s viewDidLoad(), replace the line that creates the level object with:
level = Level(filename: "Level_1")
Build and run, and now you should have a non-square level shape:
Who are you calling a square?
Making the Tiles Visible
To make the cookie sprites stand out from the background a bit more, you can draw a slightly darker “tile” sprite behind each cookie. These new tile sprites will live on their own layer, the tilesLayer. The graphics are included in the starter project, in Grid.atlas.
In GameScene.swift, add three new properties:
let tilesLayer = SKNode() let cropLayer = SKCropNode() let maskLayer = SKNode()
This makes three layers: tilesLayer, cropLayer, which is a special kind of node called an SKCropNode, and maskLayer. A crop node only draws its children where the mask contains pixels. This lets you draw the cookies only where there is a tile, but never on the background.
In init(size:), add these lines below the code that creates the layerPosition:
tilesLayer.position = layerPosition maskLayer.position = layerPosition cropLayer.maskNode = maskLayer gameLayer.addChild(tilesLayer) gameLayer.addChild(cropLayer)
Make sure you add the children nodes in the correct order so tiles appear behind the cropLayer (which contains your cookies.) SpriteKit nodes with the same zPosition are drawn in the order they were added.
Replace this line:
gameLayer.addChild(cookiesLayer)
With this:
cropLayer.addChild(cookiesLayer)
Now, instead of adding the cookiesLayer directly to the gameLayer, you add it to this new cropLayer.
Add the following method to GameScene.swift, as well:
func addTiles() { // 1 for row in 0..<numRows { for column in 0..<numColumns { if level.tileAt(column: column, row: row) != nil { let tileNode = SKSpriteNode(imageNamed: "MaskTile") tileNode.size = CGSize(width: tileWidth, height: tileHeight) tileNode.position = pointFor(column: column, row: row) maskLayer.addChild(tileNode) } } } // 2 for row in 0...numRows { for column in 0...numColumns { let topLeft = (column > 0) && (row < numRows) && level.tileAt(column: column - 1, row: row) != nil let bottomLeft = (column > 0) && (row > 0) && level.tileAt(column: column - 1, row: row - 1) != nil let topRight = (column < numColumns) && (row < numRows) && level.tileAt(column: column, row: row) != nil let bottomRight = (column < numColumns) && (row > 0) && level.tileAt(column: column, row: row - 1) != nil var value = topLeft.hashValue value = value | topRight.hashValue << 1 value = value | bottomLeft.hashValue << 2 value = value | bottomRight.hashValue << 3 // Values 0 (no tiles), 6 and 9 (two opposite tiles) are not drawn. if value != 0 && value != 6 && value != 9 { let name = String(format: "Tile_%ld", value) let tileNode = SKSpriteNode(imageNamed: name) tileNode.size = CGSize(width: tileWidth, height: tileHeight) var point = pointFor(column: column, row: row) point.x -= tileWidth / 2 point.y -= tileHeight / 2 tileNode.position = point tilesLayer.addChild(tileNode) } } } }
Here's what's going on.
Wherever there’s a tile, the method now draws the special MaskTile sprite into the layer functioning as the SKCropNode’s mask.
This draws a pattern of border pieces in between the level tiles. Imagine dividing each tile into four quadrants. The four boolean variables — topLeft, bottomLeft, topRight, topLeft — indicate which quadrants need a background. For example, a tile surrounded on all sides wouldn't need any border, just a full background to fit in seamlessly to the tiles around it. But in a square level, a tile in the lower-right corner would need a background to cover the top-left only, like so:
The code checks which tile is required, and selects the right sprite.
Finally, open GameViewController.swift. Add the following line to viewDidLoad(), immediately after you present the scene:
scene.addTiles()
Build and run and notice how nice your cookies look!
Looks good enough to eat!
Where to Go From Here?
You can download the completed version of the project to this point using the Download Materials button at the top or bottom of this tutorial.
Your game is shaping up nicely, but there’s still a way to go before it's finished. For now give yourself a cookie for making it through part one!
In the next part, you’ll work on detecting swipes, swapping cookies and finding cookie chains. You're in for a treat ;]
While you eat your cookie, take a moment to let us hear from you in the forums!
Credits: Free game art from Game Art Guppy.
Portions of the source code were inspired by Gabriel Nica's Swift port of the game.
The post How to Make a Game Like Candy Crush with SpriteKit and Swift: Part 1 appeared first on Ray Wenderlich.
How to Make a Game Like Candy Crush with SpriteKit and Swift: Part 1 published first on https://medium.com/@koresol
0 notes
Text
The best free blogging site of 2018
Visit Now - http://zeroviral.com/the-best-free-blogging-site-of-2018/
The best free blogging site of 2018
Free blogging sites have come a long way in recent years, and it’s now easier than ever to create a professional-looking blog to share a hobby with likeminded people, express your opinions, and establish an online presence.
These free blogging sites are aimed at hobbyist bloggers – blogs are created and managed online, and hosted on the blogging platform’s own servers. If you want to create a self-hosted blog, the downloadable version of WordPress is an excellent option, with total flexibility, support for third-party plugins, and as much storage as your hosting plan allows.
If you’re interested in making a static website rather than an online journal, take a look at our guide to the best free website builders.
You can host a WordPress blog yourself, or create one online and have it hosted at wordpress.com
1. WordPress
With advanced features, plugins and a generous storage allowance, WordPress is the best free platform for starting your first blog
Powerful and highly customizable, WordPress is a brilliant platform for blogs of any size, and bloggers of any level of experience.
Creating your first blog is very straightforward, with a simple wizard that guides you through the process of choosing a name and suitable theme. You can leave it there and begin writing posts immediately, but the real fun lies in the more advanced editor, which lets you customize virtually every aspect of your blog’s appearance.
Unlike some blogging sites, WordPress isn’t a drag-and-drop affair, and you’ll have to familiarize yourself with its system of menus. It’s well worth the effort, though, and enables you to create something truly personal. The editor also lets you create static pages – like a writer’s biography, for example.
The post-writing interface is much like an ordinary desktop word processor (though some options are presented in a toolbar at the top, while others are in a menu at the side, which can be a little confusing at first). Again, time spent getting to know the interface is rewarded with advanced features like customizable social media sharing buttons, geotagging, and the ability to pick a custom style for individual posts. Sometimes you might want to create a photo gallery, for example, and other times a more text-focused style would be more appropriate. You can also view and edit the HTML source.
As your blog grows, WordPress lets you track its stats, including page views, visitors, likes and comments over time. You can also see how readers reach your site, which content they viewed, and where are were in the world, so you can tailor your content accordingly.
Your site is hosted on WordPress’s servers, with an address in the format yoursite.wordpress.com. Users of the free service don’t get email or live chart support, but the WordPress community forums are very active and questions are usually answered within a few minutes.
WordPress displays ads on free blogs, but provided you can live with that, it’s undoubtedly the best free blogging site around.
Try it online: WordPress
Blogger has been around for many years, but has kept up with current trends and technology, including responsive blog templates
2. Blogger
A free web platform with mobile-friendly features and Google app integration
Blogger is another superb blogging platform. It’s not quite as powerful as WordPress, but more accessible for new users, which comes as no surprise when you learn that it’s owned by Google.
Blogger offers an excellent selection of templates, all of which include mobile versions optimized for smaller screens – a very sensible addition with so many people accessing online content through smartphones.
Blogger’s post-editing tool is much like WordPress’s, but offers fewer options. As a result, its toolbars are less confusing – a trade-off between power and usability.
One of Blogger’s best features is its integration with other Google apps and services. For example, it uses your Google Drive account to store images and other files for your blog. Google Drive gives you 15GB of space free, so Blogger is a good choice if you’re planning to share a lot of high-res photos.
Spam comments are a big problem on blogs, so Blogger’s automatic spam filter can help save your sanity. You can monitor comments via Blogger’s dashboard, which also lets you see visitor stats. There are some handy visualizations here, including a world map to show the global distribution of your readers.
Your blog will have an address in the format yoursite.blogger.com, and, like all Google services, will include ads. Support is available through the Blogger user forum, which is very active but has a strange layout that can be a little off-putting.
In all other respects, Blogger is brilliant – one of the best free blogging sites if you prioritize ease of use over flexibility and are a fan of the Google ecosystem.
Try it online: Blogger
Wix offers a choice of blog building tools, making the process as simple or involved as you like
3. Wix
A great free blogging site for completely new users, with two quick and convenient editors, plus free stock photos to get you started
Wix is our favorite general-purpose free website builder, and is great for creating stylish blogs too. Its chief drawback is storage – you have just 500MB for your files and data traffic is restricted to 500MB per month, so you’ll need to upgrade to a premium plan if your blog really takes off.
Once you’ve created an account, select ‘blog’ from the list of categories, then choose either Wix Artificial Design Intelligence (ADI) or Wix Editor. Wix ADI asks a series of very simple questions, then builds a site around your answers – ideal if you’ve never created a site before and find the idea intimidating. Wix Editor is very straightforward too (simpler than Blogger or WordPress), but is much more flexible than ADI and will be a better choice for most users.
One of Wix’s best features is its choice of image sources, including your hard drive, social media, free images from Wix itself, and pictures from its partner stock photography site Bigstock. If your blog posts are text-heavy, these free images are a great way to make it look more appealing.
On the downside, your custom wix.com URL will include a string of not-too-snappy letters and numbers that might make it hard to memorize.
That aside, its resources and friendly approach mean Wix just pips Weebly to third place. Free Wix sites include a tiny ad for the company in the top right and another at the bottom, but these won’t spoil the look for your blog.
Try it online: Wix
4. Weebly
Blogs on Weebly are built from a combination of content blocks
Weebly’s flexible editor lets you drag and drop your way to a smart looking blog
Weebly takes a modular approach to blog-building, with a drag-and-drop editor that lets you choose which elements to add to your site, and where.
Pick a basic template, then plonk various types of content onto the page, including social media links, text, images, maps, and sections of code. It’s a refreshingly simple way to build a blog that feels unique to you, but doesn’t require any messing about with menus. It’s worth noting, however, that certain content blocks can only be positioned in certain areas; it isn’t a total free-for-all. This makes sense – forcing you to stick within the confines of your chosen template stops the page looking messy – but you might find it limiting.
Blog posts are made in the same way – drag text boxes, picture frames, buttons and page breaks into position, then click to edit them. One particularly nice feature is the ‘secret draft link’, which lets you preview your unpublished post, and even share it with others via email before releasing it into the wild.
Weebly has some other interesting tricks up its sleeve too, including an area for pasting in Google Analytics tracking code (though it doesn’t offer analytics itself).
As with Wix, you’re only given 500MB for uploaded content, so photographers might want to look elsewhere. Weebly puts an ad in your site’s footer, but it doesn’t obscure any of your content.
Try it online: Weebly
Penzu is a personal blogging tool that lets you create your own private diary
5. Penzu
Keep it secret, keep it safe with a secure journal for your private thoughts
Whereas the other free blogging sites are designed to get as many eyeballs on your posts as possible, Penzu is the equivalent of a locked diary stashed in a safe.
Penzu is a journal platform that makes your posts private by default and locks them down with at least one password (even after you’re logged in, you need a second one to read or edit your posts). That’s because it’s designed for private thoughts and personal reflection. There are free apps for iOS and Android that enable you to update your Penzu diary anywhere, but the contents are for your eyes only.
Penzu isn’t a tool for self-promotion, so although it’s far from ugly, it understandably focuses on function rather than looks. Custom colors and backgrounds come at a price – currently US$10 (about £8, AU$13) per year.
It’s a shame that 128-bit AES encryption is also limited to the paid-for version, and there’s a fair amount of pressure to upgrade. Extra options are often dangled under your nose then yanked away, but the core offering is a good one and if you simply want a place to record your thoughts and practise writing, Penzu could be just what you need.
Try it online: Penzu
0 notes
Text
Best Tech Gifts 2017
It’s that time again! That’s right, time to frantically search for the perfect, high-tech and downright impressive tech gifts for the loved ones in your life. Don’t let shopping get you down this year. 2017 has been an excellent year for product launches, making your holiday shopping easier than ever before. Here are the best tech gifts you should be giving this year:
Apple Watch 3 GPS + Cellular, $399+
The newly-released Apple Watch 3 may look like the first and second models, but this little device packs a punch. Now, those with cellular enabled watches can leave their phones at home. The Apple Watch 3 with GPS and cellular enables users to track their workouts, text message, make and accept calls, and stream music from any location with a cellular connection – no phones attached.
Wemo Mini Smart Plugs, $29.99
Do you know someone who’s too lazy to get out of bed and turn off the lamp downstairs? Or someone who hates coming home to a dark house but doesn’t want to leave lights on all day? Smart outlets are the perfect solution for a multitude of electronic-related inconveniences. Simply plug them into the wall, plug in your appliance and have Alexa, Google Assistant or the Wemo app handle the rest.
Anti-theft Laptop Backpack, $38.99
A new era of backpacks has arrived, and for high-school and college students, as well as traveling business professionals, they’re a lifesaver. This backpack from Mark Ryden is water resistant, carries up to a 15.6” laptop, and contains multiple pockets and straps for optimal organization. It even comes with a USB charging port for charging mobile devices on the run.
Apple AirPods, $159
The Apple AirPods are finally available for purchase, and users apparently love them. They boast a 4.5 out of 5-star rating with more than 700 reviews on the Apple website. With AirPods, there are no wires, making them the most discreet, quality earbud option available. When using AirPods, audio automatically plays when they’re placed in your ears and pauses when they’re taken out. Thanks to Siri, a double tap on one earbud allows users to adjust the volume, change the song, make a call, and even get directions.
19 Crimes Wine, $9.99 – $33.99
Although this wine is inexpensive, it is insanely cool. 19 Crimes Wine bottles feature a photo of a real English convict sentenced to live on the uninhabited continent we now call Australia. As if that wasn’t interesting enough, the 19 Crimes team created an augmented reality app to accompany their bottles. This app allows you to point your phone’s camera toward the convicts to watch them move about as they tell you about their crime.
Moon Lamp, $29
These 3D printed moon lamps make beautiful night lights and talking pieces for amateur astronomers. The lunar globe can be set to one of three different colors and features a realistic design sprinkled with craters. These lamps are portable, rechargeable and mesmerizing.
Lego Boost Creative Toolbox, $159
Want to be sure your kid stays at the top of his technological game? The Lego Creative Toolbox allows kids to build their very own interactive robot from the ground up. Once the robot is built, kids then learn how to code certain actions into the robot’s capabilities by using a tablet and the robot’s color, distance and tilt sensors.
Nintendo Super NES Game System, $79
Last year, the Super NES was nearly impossible to track down. This year, you can scoop one up from your local Best Buy for only $79. This gift is great for kids and nostalgic adults, alike. While it looks exactly like the original Nintendo Super NES, it’s small enough to fit in the palm of your hand. The system comes with two classic controllers and 21 pre-loaded games, including Mario Kart, Super Mario World, the Legend of Zelda and the first release of Star Fox 2.
Furbo Treat-Tossing Dog Camera, $249
The Furbo dog camera is an unbeatable gift for the dog-lover in your life. Furbo offers a full HD camera, two-way audio for talking to pets from anywhere, bark-sensing and treat tossing. Furbo can also be controlled by Amazon Alexa. For example, users can say things like, “Alexa, have Furbo toss a treat to Murphy every hour.”
Skullcandy Bluetooth Wireless Earbuds, $33
These Skullcandy wireless headphones are some of the most reasonably-priced Bluetooth headphones on the market. While they may not sound as nice as the Apple Beats X, they certainly get the job done! These earbuds feature 6 hours of rechargeable battery life and the ability to take phone calls – no strings attached. Awesome for people who tend to lose things and kids who can’t be trusted with expensive gadgets.
Apple iPhone X, $999+
If you want to be the most cutting-edge gift-giver around, surprise your loved one with the newly released iPhone X. The iPhone X features an edge-to-edge display, facial recognition unlocking, wireless charging, an impressively capable dual-lens camera and a beautiful UI. For the iOS user in your life, this is definitely the best tech gift 2017!
Google Pixel 2, $649
The Google Pixel 2 is a stunning phone for Android users, featuring a 12.2 mp camera, 6” pOLED screen and enhanced security to protect users from malware attacks. It can be purchased unlocked or for use with Verizon.
Amazon Echo Show, $229
For those who already use previous Amazon Echo devices, the Echo Show is a great home addition. With the Echo Show, users can enjoy videos, browse Audible audiobooks, view weather forecasts and monitor video cameras, all hands-free. The Echo Show also features Dolby room-filling speakers for excellent sound quality.
We hope you enjoyed our list of the Best Tech Gifts 2017!
This list of the best tech gifts 2017 was carefully curated by the SevenTablets team and informed by our own wishlists. With all these gadgets in mind, shop on, and rest assured that your love-ones will love any of the high-tech gifts you choose!
The post Best Tech Gifts 2017 appeared first on SevenTablets.
from SevenTablets http://seventablets.com/blog/best-tech-gifts-2017/ from Seven Tablets,Inc https://seventabletsinc.tumblr.com/post/167742110728
0 notes
Text
Best Tech Gifts 2017
It’s that time again! That’s right, time to frantically search for the perfect, high-tech and downright impressive tech gifts for the loved ones in your life. Don’t let shopping get you down this year. 2017 has been an excellent year for product launches, making your holiday shopping easier than ever before. Here are the best tech gifts you should be giving this year:
Apple Watch 3 GPS + Cellular, $399+
The newly-released Apple Watch 3 may look like the first and second models, but this little device packs a punch. Now, those with cellular enabled watches can leave their phones at home. The Apple Watch 3 with GPS and cellular enables users to track their workouts, text message, make and accept calls, and stream music from any location with a cellular connection – no phones attached.
Wemo Mini Smart Plugs, $29.99
Do you know someone who’s too lazy to get out of bed and turn off the lamp downstairs? Or someone who hates coming home to a dark house but doesn’t want to leave lights on all day? Smart outlets are the perfect solution for a multitude of electronic-related inconveniences. Simply plug them into the wall, plug in your appliance and have Alexa, Google Assistant or the Wemo app handle the rest.
Anti-theft Laptop Backpack, $38.99
A new era of backpacks has arrived, and for high-school and college students, as well as traveling business professionals, they’re a lifesaver. This backpack from Mark Ryden is water resistant, carries up to a 15.6” laptop, and contains multiple pockets and straps for optimal organization. It even comes with a USB charging port for charging mobile devices on the run.
Apple AirPods, $159
The Apple AirPods are finally available for purchase, and users apparently love them. They boast a 4.5 out of 5-star rating with more than 700 reviews on the Apple website. With AirPods, there are no wires, making them the most discreet, quality earbud option available. When using AirPods, audio automatically plays when they’re placed in your ears and pauses when they’re taken out. Thanks to Siri, a double tap on one earbud allows users to adjust the volume, change the song, make a call, and even get directions.
19 Crimes Wine, $9.99 – $33.99
Although this wine is inexpensive, it is insanely cool. 19 Crimes Wine bottles feature a photo of a real English convict sentenced to live on the uninhabited continent we now call Australia. As if that wasn’t interesting enough, the 19 Crimes team created an augmented reality app to accompany their bottles. This app allows you to point your phone’s camera toward the convicts to watch them move about as they tell you about their crime.
Moon Lamp, $29
These 3D printed moon lamps make beautiful night lights and talking pieces for amateur astronomers. The lunar globe can be set to one of three different colors and features a realistic design sprinkled with craters. These lamps are portable, rechargeable and mesmerizing.
Lego Boost Creative Toolbox, $159
Want to be sure your kid stays at the top of his technological game? The Lego Creative Toolbox allows kids to build their very own interactive robot from the ground up. Once the robot is built, kids then learn how to code certain actions into the robot’s capabilities by using a tablet and the robot’s color, distance and tilt sensors.
Nintendo Super NES Game System, $79
Last year, the Super NES was nearly impossible to track down. This year, you can scoop one up from your local Best Buy for only $79. This gift is great for kids and nostalgic adults, alike. While it looks exactly like the original Nintendo Super NES, it’s small enough to fit in the palm of your hand. The system comes with two classic controllers and 21 pre-loaded games, including Mario Kart, Super Mario World, the Legend of Zelda and the first release of Star Fox 2.
Furbo Treat-Tossing Dog Camera, $249
The Furbo dog camera is an unbeatable gift for the dog-lover in your life. Furbo offers a full HD camera, two-way audio for talking to pets from anywhere, bark-sensing and treat tossing. Furbo can also be controlled by Amazon Alexa. For example, users can say things like, “Alexa, have Furbo toss a treat to Murphy every hour.”
Skullcandy Bluetooth Wireless Earbuds, $33
These Skullcandy wireless headphones are some of the most reasonably-priced Bluetooth headphones on the market. While they may not sound as nice as the Apple Beats X, they certainly get the job done! These earbuds feature 6 hours of rechargeable battery life and the ability to take phone calls – no strings attached. Awesome for people who tend to lose things and kids who can’t be trusted with expensive gadgets.
Apple iPhone X, $999+
If you want to be the most cutting-edge gift-giver around, surprise your loved one with the newly released iPhone X. The iPhone X features an edge-to-edge display, facial recognition unlocking, wireless charging, an impressively capable dual-lens camera and a beautiful UI. For the iOS user in your life, this is definitely the best tech gift 2017!
Google Pixel 2, $649
The Google Pixel 2 is a stunning phone for Android users, featuring a 12.2 mp camera, 6” pOLED screen and enhanced security to protect users from malware attacks. It can be purchased unlocked or for use with Verizon.
Amazon Echo Show, $229
For those who already use previous Amazon Echo devices, the Echo Show is a great home addition. With the Echo Show, users can enjoy videos, browse Audible audiobooks, view weather forecasts and monitor video cameras, all hands-free. The Echo Show also features Dolby room-filling speakers for excellent sound quality.
We hope you enjoyed our list of the Best Tech Gifts 2017!
This list of the best tech gifts 2017 was carefully curated by the SevenTablets team and informed by our own wishlists. With all these gadgets in mind, shop on, and rest assured that your love-ones will love any of the high-tech gifts you choose!
The post Best Tech Gifts 2017 appeared first on SevenTablets.
from SevenTablets http://seventablets.com/blog/best-tech-gifts-2017/
0 notes
Text
Blog final
After all classes, I am at the end of submitting my final project. The project is more about what I have learned in class. My purpose of doing this project to show a step by step progress within programming language and platforms. Also, to understand how javascript works and what are main components of Java which allows you to make things happened within your browser and other platforms. Personally, I found java interesting and helpful to understand the logic behind complex structures.
Concept Initial concept of the project was to create a web-based music production system where audience will be able to create their own music and they can use it to perform it live but this idea seems to be a big idea for this class I think this was not possible as I am a starter with JavaScript so I decided to make this idea simple and possible to do so I came up with idea of using some device which I can trigger and use it to produce sound within web browser. where I can generate sound through gestures. and this is my first step towards learning how we can generate sound using body gestural movements. However, gestures can be defined in different ways but typ of gesture which I am using is hand gestures, One of the main reason of using hand gestures is because I am using MYO hand band.
What is MYO
\The Myo armband is a gesture recognition device worn on the forearm and manufactured by Thalmic Labs. The Myo enables the user to control technology wirelessly using various hand motions. It uses a set of electromyographic (EMG) sensors that sense electrical activity in the forearm muscles, combined with a gyroscope, accelerometer, and magnetometer to recognize gestures. The Myo can be used to control video games, presentations, music and visual entertainment. It differs from the Leap Motion device as it is worn rather than a 3D array of cameras that sense motion in the environment.
Process
The process involves 6 weeks in which we start with basic understanding and learning of javascript within webs Brower.
The first week was all about HTML/CSS/JS where we learn basic web system and its architecture
HTML <html>
<head> <link rel="stylesheet" type="text/css" href="style.css"> </head>
<body>
<div id="thing1"></div> <div id="thing2"></div> <div id="thing3"></div> <div id="thing4"></div> <div id="thing5"></div>
JS
var thing1= document.getElementById('thing'); thing1.onclick=function(){ console.log('clicked');
};
var divs = document.getElementsByTagName('div'); console.log(divs);
//string delimiter fun console.log("hello I'm adam"); console.log('"hello" said adam');
based on this code next 3 weeks were all about adding thing into it such as button and next was click the button to generate sounds. How to use web music API their I learn a new concept of APIs within web browser.
after 3 weeks of learning. We get into a new thing which is CHUCK
ChucK is a programming language for real-time sound synthesis and music creation. It is open-source and freely available on MacOS X, Windows, and Linux. ChucK presents a unique time-based, concurrent programming model that's precise and expressive (we call this strongly-timed), dynamic control rates, and the ability to add and modify code on-the-fly. In addition, ChucK supports MIDI, OpenSoundControl, HID device, and multi-channel audio. It's fun and easy to learn, and offers composers, researchers, and performers a powerful programming tool for building and experimenting with complex audio synthesis/analysis programs, and real-time interactive music.
While exploring chuck I learn a lot as I am interested in music and sound and this platform was all about sound so I took advantage of this class and try to build my own sounds.
Such as in chuck there are 3 things common which are
SqrOsc TriOsc SawOsc
And here I tried to merge all these values to see what sound it creates this experiment was pretty much successful
SinOsc s => dac;
0.6 => s.gain; 220 => s.freq; 1::second => now;
0.5 => s.gain; 440 => s.freq; 2::second => now;
0.3 => s.gain; 330 => s.freq; 3::second => now;
on the next step I started working on my final project first I decide to my final project within a web browser but unfortunately, I was not able to run MYO with a web browser. Then I decided to my project with another platform which Is processing.
processing which is a java based platform. Which is a really good platform to write the interactive scripts. for the sound part I tried using CHUCK But due to some issues with OSC-I was not able to make my Chuck talk with processing so I ended up using pre-made sound I found this easy to understand how I put sound in my script.During my process, I also did some experiments with flocking.js which is another javascript library to deal with sound production in the browser. But since I decided not to use web browser so I can’t use flocking.js for this purpose.
What is Flocking.js Flocking is a JavaScript audio synthesis framework designed for artists and musicians who are building creative and experimental Web-based sound projects. It runs in Firefox, Chrome, Safari, and Node.js on Mac OS X, Windows, Linux, iOS, and Android. Flocking is different. Its goal is to promote a uniquely community-minded approach to instrument design and composition. In Flocking, unit generators and synths are specified declaratively as JSON, making it easy to save, share, and manipulate your synthesis algorithms. Send your synths via Ajax, save them for later using HTML5 local data storage, or algorithmically produce new instruments on the fly. So is started my final project with importing library
import ddf.minim.*; import ddf.minim.analysis.*; import ddf.minim.effects.*; import ddf.minim.signals.*;
// processing sound library and Myo Library
import de.voidplus.myo.*;
Minim minim;
//minim library object, we will call function of this library using this object.
AudioPlayer play0,play1,play2,play3,play4; //this is the variable to produce sound Myo myo;
PImage[] img; boolean[] active;
void setup() { size(800, 200); background(255);
myo = new Myo(this); //lockingPolicy = new String("none"); myo.setLockingPolicy(Myo.LockingPolicy.NONE); myo.unlock(Myo.Unlock.TIMED); myo.setFrequency(10);
// loading pre-define gestures from MYO
img = new PImage[5]; img[0] = loadImage("data/double_tab.png"); img[1] = loadImage("data/spread_fingers.png"); img[2] = loadImage("data/wave_right.png"); img[3] = loadImage("data/wave_left.png"); img[4] = loadImage("data/make_a_fist.png");
active = new boolean[5]; resetImages();
minim = new Minim(this); play0 = minim.loadFile("data/snare1.mp3"); play1 = minim.loadFile("data/martin.mp3"); play2 = minim.loadFile("data/kick.mp3"); play3 = minim.loadFile("data/hip_hop_bass_line.mp3"); play4 = minim.loadFile("data/hihat-open.mp3"); }
void resetImages(){ for(int i = 0; i<5; i++){ active[i] = false; } }
void draw() { background(255); // ...
for (int i = 0; i<5; i++) { tint(255, (active[i]) ? 100 : 50); image(img[i], ((140*i)+(i*10))+30, 30, 140, 140); } }
void myoOnPose(Device myo, long timestamp, Pose pose) {
if (!pose.getType().toString().equals("REST")) { resetImages(); }
switch (pose.getType()) { case REST: // resetImages(); break; case FIST: active[4] = true; myo.vibrate(); play0.loop(); break; case FINGERS_SPREAD: myo.vibrate(); active[1] = true; play1.loop(); break; case DOUBLE_TAP: active[0] = true; myo.vibrate(); play2.loop(); break; case WAVE_IN: active[2] = true; myo.vibrate(); play3.loop(); break; case WAVE_OUT: active[3] = true; myo.vibrate(); play4.loop(); break; default: break; } }
void myoOnLock(Device myo, long timestamp) { resetImages(); }
void myoOnUnLock(Device myo, long timestamp) { resetImages(); }
so, on every hand gestures, I am generating a sound and this sound is automatically looped in the code so it will play on loop since I am a new user to MYO so I don’t have a good command on it but this was fun to use MYO to produce music in this way.
Future Integrations
For future, I would like to explore the same area but adding more features in it such as using MYO with the web browser and doing same music production thing with MYO. But also I am very interested in Playing around with CHUCK and how I can use chuck code in such process.
0 notes
Text
Creator of Streaks and Full-Time Indie iOS Dev: A Top Dev Interview With Quentin Zervaas
Creator of Streaks app, Quentin Zervaas
Welcome to another installment of our Top App Dev Interview series!
Each interview in this series focuses on a successful mobile app or developer and the path they took to get where they are today. Today’s special guest is Quentin Zervaas.
Quentin is one of the few indie developers still left standing in our community. He’s also an Apple Design Award winner, which is something we all aspire to. So, we’re really keen to hear how he’s found success as a full-time indie iOS app developer.
Quentin is the Founder and creator of the Streaks app and is a hot developer in Australia running CocoaHeads Adelaide.
Indie Developer
Going full-time indie developer can be a struggle for many developers. Can you tell me how you became successful as a full-time indie developer?
It is hard. I’ve actually been self-employed for most of my professional career. It actually began while I was doing some freelancing out of hours, then the company I was working for shut down. I didn’t actively make the decision to quit a full-time steady income, so I can imagine that would be extremely difficult for most people.
To become successful is really just a matter of persistence: you keep trying things, many will fail, eventually, some things succeed. These things won’t last forever either, then it’s on to the next thing.
The best piece of advice somebody gave me while I was working on something that was going quite well: “This won’t be your last business”. He was right.
You should always be on the lookout for new opportunities. Starting new things doesn’t necessarily mean abandoning current things. You’ll know when the time is right. I have a bunch of prototype apps I build – ideas or potential businesses I explore while working on my main apps. Most of them go nowhere. It’s just a matter of trying and failing.
Can you tell me what a typical day looks like for you?
6:30: Wake up
6:30 – 7:00: Read Twitter / Email / Hacker News
7:00: Drive to the office
7:30 – 5:00: Jump between lots of different projects. Mostly depending on what is pressing or what I’m motivated to work on. This changes often though, depending on what comes up.
In the evening I try to detach from it all, but this doesn’t really work – I often keep an eye on emails & Twitter. Which is maybe a bit sad, but I like it!
I work in an office away from home. I’ve worked from home in the past, but I personally don’t really like it, as it’s hard to detach yourself from “non-work”. I wake up pretty early, mainly to beat traffic.
Quentin’s current workspace.
What I’m working on really changes depending on the time of year. For instance, right now I’m getting my app updates ready for iOS 11 and adding new features using new iOS 11 features. This results in a lot of coding, a lot of uploading builds to TestFlight, handling feedback from testers.
Since I try and translate my apps into as many languages as possible, I spend a lot of time managing the translations and localisations in the app. This involves dealing with translation services, testing in foreign languages, all that kind of stuff.
On that note your app supports many languages. Can you tell me how you localized the app and how you thoroughly tested this?
I use a service called I Can Localize to actually translate the text. You can pretty much just upload your Localizable.strings file, it’ll import all of the strings, then assign them to translators. Once complete, you can download a separate Localizable.string file for each language. I have a workflow where I can automate downloading and merging the translations back into my projects.
Quentin uses Fastlane to automate his screenshot process.
I highly recommend translating apps as much as possible. One of the great things about doing so is that it forces you to think about the structure and design of your app early on. For me, adding a new sentence to 25 languages can be quite expensive, so my first thought would be “is there an easier way to explain this”, such as making the functionality more obvious, or using an image instead of text to explain things.
The translation service provides a review service, since some strings may not make sense in a given context. For this, I upload screenshots.
The best thing you can do to test your translations is to use the iOS UI testing along with Fastlane’s Snapshot. Once set up, I can generate a screenshot for every screen, device, and language and then review them myself for layout issues, or upload them for the translators to review. If you have 20 screens, 5 devices (e.g. iPhone X, 8 Plus, 8, SE, iPad), 25 languages, this could be thousands of screenshots, so you need to automate this. Plus you can generate your iTunes Connect screenshots, then automate their upload with Fastlane’s Deliver.
What tools do you use for your day to day business?
Xcode – Build your iOS / watchOS / tvOS apps
Visual Studio Editor – General purpose text editor
Photoshop/Sketch – I do most of my graphics editing here, but there are things I’m unable to do well. For example, I find foreign language support (such as Arabic or Thai) is really difficult to do, or even things like using SVG files.
Tweetbot – We get a ton of a customer feedback and interaction for our apps on Twitter
FastMail – This is a great email service if you’re trying to avoid Gmail
I Can Localize/Google Translate – Excellent translation service
PhpStorm – For building web sites / APIs / backend services
Fastlane – Tools like Snapshot and Deliver are huge time savers for building screenshots and interacting with iTunes Connect.
CocoaPods – External open-source libraries that easily integrate with your Xcode projects
Streaks
I am such a fan of the Streaks app. Can you tell me the story and how it all began?
I realized there were a few specific things I needed to do each and every day in running my business. I wanted a repeating todo list just for a handful of tasks. I was kind of inspired by the activity graph on GitHub and wanted to make it kind of work like that. In other words, the more often you did something, the better it would look.
One of the huge advantages app developers have over anybody else who “has an app idea” is that we can build it. I build a ton of prototypes for things I think may be useful. With Streaks, I built the prototype, and it was useful, so incrementally improved it, until we realized there was a product and then refined the vision further and turned it into a real app.
Quentin is always creating prototypes!
You recently won an Apple design award. Can you explain the design process for the Streaks app?
One of the key things in the front of mind with Streaks is restraint. Does that new feature really need to be added? The second thing is simplicity: is there an easier way to achieve this? Is there a clearer way to explain this to the user?
Also, since it’s available in 25+ languages, sometimes you really need to think about how to explain something with as few words as possible, since some of those long German words just won’t fit no matter how hard you try.
Streaks is a very successful app. What advice do you have for fellow app developers?
I heard something recently about what they do at Amazon (I’m not sure if this is true, but I like the idea of it). Before a new product is released, the product manager needs to write a press release explaining why the project ultimately failed.
It forces you to think about and face head-on whatever the biggest problem is with the project. If it’s insurmountable, that’s a pretty good indicator to move on to the next thing. It’s one step ahead of “fail fast”!
As far as specifics go: make your app available to as many people in your target audience as possible. Translate your apps into as many relevant languages as possible. Test for accessibility (VoiceOver). Build an Apple Watch app.
Try and use as many new SDKs and APIs as possible. One of the things that will help Indies on the App Store more than most other things is being featured by Apple. Give them a reason to feature you!
I think it’s successful because;
It works
It looks nice
It feels good to use.
The number of times I’ve found myself running up and the down the hallway at 11 pm just because I have to get a few hundred more steps to complete my Streaks!
Also, people love to customize things. Since you can create any task, we wanted a ton of images to choose from and also dark themes are popular now since people use their devices while in bed at night, so we added dark themes.
Streaks is a really personal app for everybody who uses it since it’s about forming their own habits, so we wanted to let people make it their own.
youtube
Streaks is a paid app, can you explain the thought process for a paid app model versus a subscription model or an in-app purchase model?
I try to price apps based on how I want to buy other apps. I like the idea of pay once, get the full app. There are obviously problems with this model, as it can be hard to build a sustainable income.
For Streaks though, neither IAPs nor subscriptions felt right. We also didn’t want it to be too cheap; users will give something much more of a chance if they’ve invested money into it. If Streaks was free, people wouldn’t be as successful with it since they likely wouldn’t try as hard.
Focus
As well as building Streaks, you also currently run the CocoaHeads Adelaide. Why did you decide to run a CocoaHeads chapter, and how do you manage to find time contributing alongside running as an indie developer?
I’m based in Adelaide, Australia – there are a number of app developers based here, but there’s no regular meet up. There have been a few attempts in the past, so figured it was time to make something more regular.
It’s a fairly small group currently, and they’re all supportive and reliable with attendance and spreading the word, so the biggest challenge each time is finding a speaker. Not a lot of time is required currently, but hopefully, it will grow in the next year and then perhaps ask me again! :]
How do you manage the wearing of multiple hats, for example, Product Owner, Developer, Tester, Marketeer?
You just need to know what you’re capable of. If you’re not, get somebody who is capable. Also, there’s a ton of online services to help with things. I used to roll everything myself (for example, server monitoring). Now it’s a much better use of time to spend a few dollars on a third-party service.
For example, I use I Can Localize for translations rather than trying to translate everything myself (or retaining my own translators), I use GitHub to host git repositories. I could run my own server with Gitlab and do it that way, but that’s a distraction. I could write my own server monitoring code, but I use a service that specializes in it. Sometimes it’s fine to not reinvent the wheel.
Procrastination is a real problem for many indie developers. How do you avoid this?
At the start of each week (and each day) I try to get a sense of what I need to achieve. If I’m really overwhelmed or have a ton of things to do, I’ll plan the day ahead, allocating blocks of time to specific projects. Without doing this you can easily spend all of your days on the one thing that really excites you, rather than that other thing you really need to get done.
I normally run over on the allocated chunks of time, but then I readjust them, but it seems to work.
Don’t get distracted by the fun of starting new projects: try to actually ship stuff. This can be pretty hard, so do it in manageable chunks. Your version 1 doesn’t need all the bells and whistles. Maybe just 1 bell and 1 whistle to begin with ;]
Even if the project fails and doesn’t go anywhere, you will have learned something for the next thing.
Where To Go From Here?
And that concludes our Top App Dev Interview with Quentin Zervaas. A huge thanks to Quentin for sharing his journey with the iOS community :]
We hope you enjoyed reading about Quentin’s story at being an iOS indie app developer. In the end, a keen eye to detail and believing in your product seems to be key to Quentin’s success.
Quentin’s eye for detail on making sure the app is as clear to understand for all languages is really important to be a worldwide success and to be recognized from Apple with an Apple Design Award. We hope you can take some advice from Quentin in your development.
If you are an app developer with a hit app or game in the top 100 in the App store, we’d love to hear from you. Please drop us a line anytime. If you have a request for any particular developer you’d like to hear from, please join the discussion in the forum below!
The post Creator of Streaks and Full-Time Indie iOS Dev: A Top Dev Interview With Quentin Zervaas appeared first on Ray Wenderlich.
Creator of Streaks and Full-Time Indie iOS Dev: A Top Dev Interview With Quentin Zervaas published first on http://ift.tt/2fA8nUr
0 notes