Tumgik
#context is i opened the browser on my phone to find out i had googled 'walter white ass' and thought 'lol jaime'. for some reason
francy-sketches · 1 year
Text
Tumblr media
forgot I made this and jumpscared myself
72 notes · View notes
rigelmejo · 3 years
Text
Some September 1st Updates
the READING SPEED difference of a novel at my level! I read the first chapter of 撒野 yesterday and this author is at exactly my reading level right now. I hit 0-2 new words each pleco page, which is usually the sweet spot to either guess the word or if I look it up I can pretty quickly adapt to recognizing it in context. Its also the sweet spot where if I only rely on guessing for new word meanings, on a second pass through I can fairly well guess the meaning quickly. 
It was a 32 page chapter in pleco and I read it in 20 minutes. Compared to the 20 pleco page per chapter pingxie fic i just finished (like 124k characters! WOW I read and FINISHED that much!), which was taking 30-40 minutes per chapter (mainly because of number of new vocabulary per chapter being a bit higher). If I’d wanted to speed read saye I could have, I’d have missed some small details but I could have tried if I wanted.
Then I did a second pass later in the day with the audiobook just following along with the text. Realized 1. I knew most words in the audiobook and did not follow as well as i thought - but those first listen throughs without having seen the chapter I did manage to figure out the main character just broke up, just travelled somewhere, ran into a girl and somehow the girls brother showed and the two guys interacted a little and someone was being somewhat helpful, then the main guy met his father trying to ‘pick him up.’ Which is a true but very rough summary of what happens in the first chapter. By reading I could confirm the words I thought were names AS names, figured out WHY the girl was interacting with the main guy and that there were actually two girls in chapter 1, and figure out who helped who and who was the girl’s brother. Also somehow before I looked at the chapter text I never caught that the audiobook mentions a motorcycle despite me knowing that word and it SOUNDING like mota-che/motorche! it sounds like the word and i knew it and didn’t hear it! Then later following the audiobook with the text I realized another issue I had, is I’m not used to listening to soft voices with such faint pronunciations of the final sounds. I’m much more used to deeper crisper pronunciations and being able to rely clearly on initials and finals AS much as tones to recognize the words, whereas this particular audiobook i needed to mainly rely on tones and initials to figure out what word was what - that probably threw me off a bit. It’s probably good for me to get practice listening to such a different voice to what I’m used to. I have definitely learned the deeper the voice, the more I have a far easier time figuring out what’s being said. Also standard accent more like beijing but without a huge amount of ‘er’s just some, and taiwan accent are the easiest for me to hear when i’m not pa
For anyone curious, here is the audiobook for SaYe I’m listening to: https://youtube.com/playlist?list=PL2w27tfjeeaySbMK272NpXwUtsBc-e3YN
Also here’s a chinese audiobook youtube I found: https://www.youtube.com/c/%E6%9C%89%E5%A3%B0%E5%B0%8F%E8%AF%B4%E5%90%AC%E4%B9%A6%E4%B8%96%E7%95%8Cyoushengxiaoshuo/playlists
Which includes The King’s Avatar: https://youtube.com/playlist?list=PLTJaWZoVPdT1ZhIQIKxVci7fVEHr-oX6k
And ErHa: https://youtube.com/playlist?list=PLsxEOGKlBMaFa6CS6Hf5ndy6qTtUL0Au_
Anyway, its a great book right now for reading practice. It’s very much around my level. I will probably stick with this author for a little while and solidify what I know/my base reading level. 
-
IN OTHER NEWS:
I am apparently living proof listening-reading, heavy emphasis on re-listening a TON in the background as you work or type or walk/drive whatever, works for learning new words. 
I re-listened to guardian chapter 1 audiobook at least 20-30 times by now, just a tremendous amount. Chapters 1-10 I’ve listened to at least 5 times by now random chapters at random days, and some probably also 20 times. 
I have listened to these chapters enough, that I can officially follow so much that I know nearly every freaking word I hear, I know it immediately on hearing in at least 3 different audiobooks, and the few ‘less familiar’ words I recognize a second after hearing (like hearing ‘audacious’ or ‘glum’ in english it just takes me a second to re-remember), and the very few still forgotten words/specific details I learn From those words I can actually pick up from the context of listening.
 I hear ‘powei’ and somehow forgot it AGAIN? Oh it means ‘rather’ in this context. ‘anli’ well i always hear ‘anlishuo’ as in ‘people say/generally speaking’ so ‘anli’ in this context must mean ‘generally/generally speaking.’ chuanghu? can’t remember it because i was just typing this JUST now and only hearing a few words from the audiobook in the background - well in context its obviously window, but out of context my brain said window and i just couldn’t remember if it was window or curtain but felt curtain had something more complex than ‘hu’ as the second half - just looked it up and my guess was right, even with no context which i’d have had if i’d been listening better and it had been clear it’s window, it still made me think ‘window’ immediately just hearing the sound. ‘xiang yi ge ren’ sounds like ‘looks like a person’ which is the next phrase i just randomly heard. ‘hua le yao ming’ shouted for their life/in awful terror? or that would be ‘huo’, so maybe ‘streaking toward him to take his life’? would make sense in context of a horror scene - i just looked it up and 划了要命 would be the second one. even IF i heard the wrong line, both of those are pretty close to a good guess in context and hua is the only unknown because without context i can’t place if it was hua or huo. i still confuse the words wu and wo for hold etc, but in context i can tell which one it is (wo is hold a hand, hold a face, etc). 
I’m genuinely at a point where I can just completely follow the plot through at least the first 20 chapters from listening. And for most scenes, follow every detail too including stuff like guo changcheng spending half a year not working at home after he graduated, being so afraid of the phone, da qing being fawning to shen wei when they meet and rubbing against his leg, the specific conversation details when da qing runs across zhao yunlan’s car in chapter 2, what zhao yunlan’s room exactly looks like, etc. Its super cool to be able to follow the audiobook so well I can follow the story and details even when I don’t have time to read! It’s so fun! And it was not very hard!
It took 40 minutes of upfront study where you set time aside to focus: 20 minutes to have a program read the chapter aloud while you either see unknown word definitions pop up (like in Pleco) or look them up with some click dictionary as you listen. 20 minutes to go through and listen to the audiobook as you follow along with the text. Then after that, just play the audiobook chapters you’ve done this with whenever you want, either paying attention like when going to bed soon or walking, or in the background like when cleaning or doing busy work or driving. Since background listening can be done easily whenever all you have to do is remember to click play when you want something to listen to. 
I’m honestly blown away by how much 3 months of studying mainly like this (which is quite fun and only requires me to carve out a small amount of actual study focused time) has improved my listening skills. I can now also listen to the 2ha audiobook okay and follow along (provided its a chapter I’ve read before so I have at least some prior context to help me out) - at least so far as that’s what I’m listening to right now. Basically, I can tell Guardian has both upped my vocabulary significantly and also improved my automatic recognition of many words I half-knew and learned since. 
I recently found a new Guardian audiobook read by a deep voice and its lovely (and utilizes music and echo for effects, its lovely to listen to) I hope the poster keeps updating: https://fm.qq.com/show/rd002ED4aN0mYz2L__
I’ve been listening to it lately.
---
Also! Directions for using Pleco Android for screen reader:
1. To get any page bookmarked online: 
Open a page in your mobile web browser you want to read. Click the menu, click share, click Pleco Reader (or ‘more’ or ‘...’ then Pleco Reader).
Go to Clipboard Reader. Now when you click text, dictate text megaphone will be an option.
*Since Clipboard Reader is free, you can do this to read in Pleco and have things spoken aloud with no money spent. (Though I find the Reader tool worth the money and add ons).
2. To have any text ‘dictated aloud’:
Go to Pleco’s menu, Settings, Audio, click ‘use TTS if no recording,’ then for Sentence Audio section area System TTS Setting click Speech Services by Google (you can also experiment by clicking other options I am just stating what worked for me, it didn’t work at first I had to make that my default TTS in my Accessibility-Talkback Settings menu on my main phone first and restart my phone before all this). 
Then click the area right below to mess with speed and sound of the TTS voice. 
(Note, to test if TTS is working you can go to any dictionary entry sentence, click the speaker next to the sentence and see if it plays audio. If it does not, you will get an error message and directions on what to change in your phone settings. That is what initially happened to me: I had to go to phone Settings, Accessibility, Talkback, TTS Engine, TTS Engine voice and settings. Pleco recommended I choose Speech Services by Google, and uninstall then reinstall the Chinese voice. Then restart the phone. That worked for me. An additional note: I have Talkback setting on ‘on’ and just have it in my toolbar to use if desired but am not actively using it. If you turn Talkback setting ‘off’ in the actual Settings area of Accessibility, I am not sure if it will affect Pleco’s ability to dictate). 
3. How to put it together: 
Now go to Clipboard Reader and read the page from the internet you wanted or text you pasted, or go to Document Reader and open the document you wish to read. 
Click a word as a place to start. Now you should see both the loudspeaker (for pronouncing the single word) and the Megaphone next to it to start dictating all text. (If your phone is weird like me, you may need to press the megaphone a couple times before the audio works).
If you wish to change dictation reading speed, simply hold down the megaphone and select the speed desired. 
Now that I’ve figured this out I really want to take pictures of my print book, make a pdf, and listen to all the changes.
(Now I just have to fix my weird dictionary in Idiom app and I’m all set on the new phone!)
---
All I’ve been doing the past august study wise is just reading pingxie fic and finishing, and listening to audiobooks. It’s been a busy time for me ToT
I do think it proved you can be lazy and still make some improvements though: 
1. Reading in Pleco (or click-dictionary tool of your choice): pick something and read a chapter a day (that’s what I did, obviously the easier this is the less time you’ll need, but aim for around 30 minutes a day and reading material closer to your level if you don’t want to read too long)
2. Listening-Reading Method something above your reading level that you enjoy. Should take 40 minutes a couple times a week to several times a week to hours a week, depending on how intense you want to get with it and how much you’re going to alternate/include the reading portion. I did like 1-2 chapters a week so I was only spending 40 minutes to 1.5 hours a week doing this, or 3 hours one week no time another week. This is definitely something where you can do 6-12 hours one month then coast on it for another month just repeating older material’s audio/re-reading sections (which is what I did with guardian, doing 22 chapters then switching to just listening to audio a lot). 
Once you’ve done a little L-R steps 2 and 3 (in either order, whatever works for you - and doing step 1 if you want more context prior to steps 2 and 3), then just make time during your days to play the audiobook chapters you’ve studied. You don’t need to be focusing every single time (although focusing on actually trying to follow the audio the first time you listen without text to aid you will probably speed up your comprehension a lot by giving you a lot of basic-context to help you comprehend more later). Aim to listen whenever you’ve got down time! Or time where you’d play music or some background youtube video or podcast - walks, exercise, drives, when cleaning, when browsing the web goofing off, when working if you have times when you’d listen to music with lyrics or a podcast in the background without issues, times when you don’t need to focus 100% on listening just putting it on to hear in the background). 
That’s all I’ve done for study since May. It takes me about 30 minutes 5 days a week, plus 1-2 hours listening-reading actively a week. So 2.5 hours plus 2 = 4 hours of active study a week. Sometimes more like 8-10 if I got really into reading something or Listening-reading to several chapters. Then after that (very easy to fit into my life 4-10 hours per week of study) I just play the audiobook whenever I have downtime at work (that’s usually 0.5-4 hours where I just let it play because I forget its on while working on spreadsheets, updates, emails, etc, or play the audiobook while messing around on the internet in my free time at home, sometimes I put on music instead), while walking so 15-30 minutes maybe 3 days a week, while driving far so maybe 20 minutes - 2 hours per week. maybe lets say 2 hours*4 days a week (I don’t remember to listen every day) so 8 hours random listening+1.5 hours walking+1 hour driving per week. That’s 11.5 hours listening in the background or paying attention plus lets say 4 hours of active study a week. So 15.5 ‘study’ hours for chinese per week - an average overall of ~2.21 hours of chinese ‘study’ per day. This isn’t counting when I get into weibo and goof off, get into some chinese show with no english subs and just start watching it (I watched 16 episodes of Humans cdrama in August which is ~10.66 hours for a total of at least (15.5*4 weeks = 62 hours + 10.66 hours -> ~72.66 hours spent ‘with chinese’ in August at minimum. 4 weeks*7 days = 28, so over around 28 days or most of august I did 72.66 total hours/28 days -> or ~2.595 hours of chinese per day as an average. So... my guess that I spend at least 1-2 hours on chinese per day as the average was a decent guess. Looks like I’m usually 2 hours to 2.5 hours daily as an overall average. It’s not that hard to get in that much without a ton of time in the day once you get some listening skills built up ToT Deciding to build up my listening skills has been one of the funnest goals in chinese so far.
Notes on Listening Reading Actively - it also doubles as increasing your exposure to listening to your target language, and the more hours the better even if its passive in the background, just more hours adding up toward your mind getting a better ability to parse the sounds of the language is going to help your overall listening comprehension in general. So even if you don’t pay attention much and can’t follow the whole plot and only catch certain scenes, you will be improving at least comprehension of: hearing words you know, hearing colocations and common phrases and recognizing more automatically which will help with speaking/writing indirectly and reading recognition of those things, overall ability to hear things correctly in different combinations and getting used to the common combinations. 
You will be surprised how much more you can pick up of plot and details the 3rd listen compared to the first, the 5th listen, the 10th listen. It’s wild. Like... I’m listening to the 2ha audiobook and even having never read it in chinese, just knowing basic context, the 2nd read through I caught so much more of the plot throughout just because I had forewarning of when scenes change a lot, what audio plays during some parts I recognized in previous listens, and so I have more focus for figuring out the new details I missed. Whereas the first listen, I didn’t always know WHAT the scene context was until I heard a familiar line or description I remembered from the english version of the scene, but on a second listen I now have a better guess at the scene the lines are probably taking place in before and after those lines I recognized in the first listen. And this continues etc each time you re-listen to something. (So yes, that initial context of knowing what you’re listening to with a previous read of its translation or target language transcript will definitely speed up comprehension pick up - but if you just wanna test what your basic listening comprehension to new content is then it works fine just going into new audio with no prior context its just more difficult at first lol until you build an idea of the context from listening).
The original Listening-Reading Method person did like 40+ hours a week, 8 hours most days, no wonder they made fast progress! They often included reading in some form (hence the name) and later translation, so they also were constantly working on listening AND some reading skills AND eventually often some speaking/writing skills. Doing it my way results in mostly listening comprehension of stuff you could already read to a degree, more automaticity in recognition, and for picking up new vocabulary both in listening and reading. I do extra reading on the side with other stuff to get more reading practice in an isolated way (since I’m trying to push my reading speed up above speaking speed). I always try to do it the way the creator originally intended, but I am not able to focus on things for more than 20 minutes at a time, 40 to a couple hours if I take a break every 20 minutes. So doing it 8 hours just doesn’t work out. 
---
I’m fairly happy!
I am on plan for my main goals that started this style study plan: 
1. Improving my reading level to get to start being able to extensively read actual danmei novels - we got there! I am at a reading level appropriate for SaYe at 98% comprehension when I checked, and at a bit above 95% comprehension for Guardian! I’m now continuing with that goal while adding on increasing reading Speed in general.
2. Improving listening skills so I have better automatic recognition of partly-known words from reading (working super well so far - I can tell because ability to watch cdramas in only chinese has improved noticeably and gotten much easier), and so I can start following the main plot and key details of audiobooks of things I’ve read before (working great for guardian, starting to work with other audiobooks provided I listen to the chapters a few times or several times if its brand new material I have no context for, however reading level matters and while things I have prior familiarity with are going very well - brand new materials are still quite challenging in that they require multiple listens for the full plot and several listens before I start picking up most non-plot-critical details). 
36 notes · View notes
billion-world · 5 years
Text
Dynamics Of The Technology Ecosystem
- March 01, 2020
Context 
The last two decades have completely changed the technology (tech) sector. Cloud computing, smartphones, apps, and high wireless data speeds are taken for granted. These developments have created a dynamic tech ecosystem. 
Figure 1: Technology Ecosystem abstraction with examples in each layer 
Having developed and marketed new products in all parts of the tech ecosystem - Networks and mobile phones (SIEMENS), Network Operators (T-Mobile), Semiconductors (National Semiconductor), Algorithms/AI (Audience), Cloud-based Applications (EVER, Moki), Blockchain (Open Garden) - gives me a unique perspective on how the technology ecosystem works and how it might evolve. 
In this article, I share my view on what constitutes the technology ecosystem, what are the primary business drivers depending on a company's position in the ecosystem, and how the ecosystem might change with Artificial Intelligence (AI).
This technology ecosystem can be abstracted to four layers supported by semiconductors (tech stack) - Cloud (Storage and Compute), Network, Application Platforms, and Applications (Figure 1). Except for Applications, all the other layers are directly dependent on semiconductors for many technological improvements. Let’s consider how a half square inch icon on your phone is powered by the layers of this technology stack. Take Uber as an example. It operates in the Applications layer and on top of multiple Application platforms (based on iOS and Android). The distribution of the apps happens mainly through Apple’s Apple Store or Google’s Play Store. To use the Uber app, your phone has to be connected to a Network provided by wireless carriers like Verizon or AT&T (The network operators don’t develop any new technologies so I have kept them out of the stack. Examples of network players are network equipment manufacturers like Ericsson, Huawei, etc.) Uber uses Cloud services, provided by Amazon or others, to compute and tell you how far away the driver is and how much the fare will be. All your history is also stored in the cloud. The cloud, the network, and the applications platforms get better, cheaper, and faster with new semiconductors (provided by ARM, Broadcom, etc.). 
Google and Apple operate in all layers to various degrees. 
This abstraction can be applied to streaming platforms (SmartTVs, AppleTV, Roku, etc.) and personal computers (Mac, PC, etc.). Both streaming platforms and personal computers with underlying OSes and App Stores/internet browsers act as Application Platforms as shown in Figure 1. 
Competitive Advantages 
Each layer has its own drivers of success. Let’s see what they are. 
Figure 2: Primary business drivers for each layer 
Applications
All the apps you see on your smartphone, personal computer, or on your SmartTV are in the Applications layer. To win in this layer, the players have to offer something new (generally software but sometimes software and hardware together) that is better than what already exists in the market, focus heavily on User Experience (UX), and continuously enhance the apps with the Application Platforms upgrade. This is the most dynamic place in the technology world where new companies go in and out all the time. However, this layer leverages the tech developed in the other layers and finds new ways to apply technologies. Except for big-tech like Facebook, Google, and Apple, most companies don’t develop new technology that becomes available  for use by other companies in the ecosystem. New ways of doing things still spread because employees move around from one company to another. Sometimes UX itself can be a relative advantage. For example, Slack and Zoom are successful mainly because of the UX they provide. 
A lot of what is happening in the Applications layer has become possible because of Application Programming Interfaces (API).
Application Platforms
It is tricky to have a definition for this layer that works for all applications.  In the mobile world, is it the smartphone, the Operating System (OS), or the App Store? I would define it as the combination of hardware that runs the OS that runs the application and the application store where apps are bought and sold. So both Google and Samsung are in this layer. Google provides the Android OS (technically it is open source) and the Play Store (where you can purchase apps) and Samsung provides the Smartphone hardware. Of course, Apple plays here with iOS (OS), App Store, and iPhone (hardware). This layer also provides the software tools to the Application layer to develop and test the application software. To be successful in this layer, the players have to develop a developer ecosystem or use an existing developer ecosystem. Scale and developer ecosystems are interconnected. Developers won’t be attracted to an ecosystem that does not have scale. Huawei and Xiaomi have been relatively successful in its own developer ecosystem in China. To do that they had to create their own OS (based on Android). 
Tumblr media Tumblr media Tumblr media
From Billion-World
1 note · View note
Text
“Overcursed” Analysis
Narrative Context
“Overcursed” is a mouse-only browser game hosted by Armorgames.com. It’s premise is straight forward, with the player taking control of an portly, unshaven avatar with a cartooishly bulbous red nose and dressed a bit like a plumber of sorts with the intent of detecting and dispelling paranormal phenomena. “You”, as the avatar is called in the phone conversations each mission is proceeded by, are tasked with responding to clients who call your business, Overcursed Inc., and rooting out whatever problem they have related to the paranormal. 
Controls 
It is a mouse-only game, so the two inputs you have available to you are left and right click. Left click lets you move your character to a location specified by the glowing blue arrow after-effect once you’ve clicked. While this is the primary function for the input, left click also allows you to interact with effects in the environment, almost exclusively light switches and doors, as well as clicking on movable items to pick them up. Right click is reserved specifically for throwing items you are currently holding in whichever direction you are facing. While idle, the cursor can be seen as a light blue cross hair with a vertical line drawn from its center to the ground below it, to relay to the player exactly where the avatar will move if commanded to do so. This is a good idea, especially because the player will move their avatar through several story buildings, most of which you cannot see due to the camera always affixed to the avatar’s location in the center of the screen. However, you cannot hold left click to move continuously. This is fine on it’s own, though I personally would prefer it to be implemented, but it makes interacting with the environment and items on the ground difficult since the screen moves when you do and I found myself always making sure to stand still before picking items, or my cursor would never detect them and I would walk right past.
On Screen
There are next to no HUD elements in Overcursed. In fact, with the exception of direction meant expressly for the player and the phone calls in between levels, there aren’t any at all. On screen at any given time, a player can see the level, the avatar, his dog (a pug named “Rocky”), the level name at the top of the screen, and the player’s current objective written just below the level title. 
Tumblr media
The Main Menu (as shown above) displays the two controls on either side of the avatar’s car, which serves as the beginning and ending point for all levels, with the title and credits over the top of both. 
Tumblr media
Tone and Length
The game is short. I mean, really short. Browser games are not exactly known for their length or technical complication, obviously limited by the browser medium itself. Even so, Overcursed is only comprised of a surprisingly simple four levels, made even more simple by the plain objectives the player is given. Due to this, there’s a stilted kind of tone that come across in play. Starting out with a kind of Ghostbuster’s premise and a Stranger Thing’s aesthetic, Overcursed’s first level had nothing paranormal at all. A client calls with concerns about electromagnetic activity and the player responds by exploring the house and learning the simple controls of the game, such as opening doors, turning on lights, and interacting with objects, until they reach the faulty antenna on top of the house and fix it, satisfying the customer.  Things then escalate slightly when the next client asks the player to set up paranormal sensors in their home to detect suspected paranormal activity, which as yet to be documented. These first two levels lead the player to believe the tension will increase slowly, but this is no the case. The third level (addressed in the next section) was not so much a case of extreme escalation, but the fourth and final level is definitely guilty of this. From simple install and correct missions, the player is asked in the final stage to clean “scriptures” from the walls of a mansion using a cleaning spray. The player finds no scriptures, but instead the words “good boy” written in dripping blood on a bedroom wall. Cleaning it requires a single left click, but the player is stopped after leaving the room. A light switch is then presented to them as a shadowy figure appears behind them. The player flicks the light on and off three times before the figure disappears entirely and your objective changes to “RUN”, animated in shaky lettering. You run through the house (though not back to your car) and find a shed in the backyard. Inside, is a large green glowing gun called a “proton pack”. Upon picking it up, the game plays a triumphant sound and the somber, tense soundtrack switches to an upbeat score more akin to an action shooter; which is fitting, because that is what the game becomes. Everything changes instantly as your task is now to shoot fifteen wholly or partially disembodied ghost children called the “undead” as they float around the house. At this point, Rocky also dies via head explosion, presumably because of the ghosts. Very upsetting. After you kill the fifteen undead, you return to your car with the objective “enjoy the rest of your evening” and the music returns to what is was. 
It’s rather a case of tonal whiplash. A slow burn turns into a shooter and back again with the climax of the title not utilizing any skills or tricks the player would have acquired along the way. I suspect this was meant to shock the player and give them that zero to ten effect intentionally, but because of the short build up time, which didn’t allow for proper tension to build, the desired effect came off as a bit random.
Level 3 
The game does a fantastic job of letting the player know, whether implicitly or explicitly, what they need to do. You can figure out clicking on interactable items will trigger them without needing the game to tell you, but the information it does give is still helpful. However, the one time it fails to communicate to the player what is required is in Level 3: The Beast. A client calls and says there is a beast in his house which needs to be killed and all olfactory traces expunged from the home. Rocky identifies each “bad smell” interactables and the player is given a cleaning spray to get rid of them. However, I was stumped when it came to the titular beast. The player is given a bear trap to kill it and I was under the impresssion that I ought to find food to place in the trap and put it somewhere logical. All this was an assumption, granted, but my only stated objective was “kill the beast” so I felt it was quite an open-ended question. I tried for some time to place the trap and the food in logical locations, but in the end I couldn’t find the solution. A quick Google told me this was a common frustration, with several Armorgame forums being devoted to “the level 3 problem”. The real solution was to simply put the trap anywhere in the kitchen. I, like many others it seemed, found this confusing as the level presented the beast as a problem to be thought out and baited correctly, rather than simply “put item here”. 
Conclusion
All in all, I enjoyed the game. It was quite short, and suffered a bit from a tonal perspective because of it, but it’s also an internet browser game. It’s goal is not to inspire incredible emotional reactions, it’s just a bit of fun you can have in between classes or if you have a bit of down time. There is a little humor there, a little spookiness, and a little horror, but it doesn’t commit to any one of these in whole just because it’s creators knew they didn’t have to. I would absolutely recommend it to anyone who likes clicking investigative games and doesn’t mind seeing a dog’s head explode. 
1 note · View note
Text
Future Of Data Science
What is data science?
Tumblr media
Data science is a field that uses scientific method, process, algorithms and system to extract knowledge from data in various forms, structural, unstructured it is similar to data mining.
Data science is a concept to unify statistic, data analysis, machine learning and their related method in order to understand actual phenomena with data .It employs theory and techniques drawn from many field within the context of mathematics, statistics, information science and computer science
How to learn data science
Data science is a very practical field, and so it’s so important to apply theoretical knowledge that you have gathered. For example, when you learn starts, don’t just sit and read about it .see how it can be done with a programming language such as python, which a very popular language for beginners, find a data set and apply these concept on the data. Including other language like
1 linear algebra and calculus –for these refer to the book called advanced engineering mathematics by kreyszig. The various topics that you need to brush up your understanding in are hyper parameters, regularization function, cluster analyses are few topics under this domain and which is important for machine learning
2 vector calculus
3 Statistics—go on learning statistics on various sites like udacity, khan academy, courser. They provide detailed overview on this topic which is a vital topic under data science.
4 programming language---The most widely preferred open source statistical tools are ‘R’ and ‘Python’.
FOR R--start learning libraries like dplyr, tidyr, data table for data manipulation and ggplot2 for visualization which has the same syntax as R.in fact the visualization in ggplot2 is way better than that of matplotib
   Go to kaggle and download data sets so that you can practice the concept that you have studied and build project and put up on your Git profile  
How To Prepare for the Future of Data Science
There are many ways companies can and should prepare for the future of data science. These include creating a culture for using machine learning models and their output, standardize and digitize processes, experimenting with a cloud infrastructure solution, have an agile approach to data science projects and creating dedicated data science units. Being able to execute on some of these points will increase the likelihood of succeeding in a highly digitized world.
A Data Science Unit
In my previous role I was working as a data scientist for an insurance company. One of the smart moves they made was to create an analytics unit, which worked across company verticals.
This made it easier for us to reuse our skills and models on a variety of data sets. It was also a signal to the rest of the company that we had a focus on data science and that this was a prioritized issue. If a company has a certain size, creating a dedicated data science unit is definitely the right move to make.
Standardization
Standardization of processes is also important. This will make it easier to digitize and perhaps automate these processes in the future. Automation is a key driver for growth, making it much easier to scale. An added bonus is that the data collected from automated processes is usually a lot less messy and less error prone than data collected from manual processes. Since an important enabler of data science models is access to good data, this will help make the models better.
Adoption of Data Science                                  
There should also be a culture in the company for adopting the use of machine learning algorithms and using their output in business decisions. This is of course often easier said than done since many employees might fear that the algorithms are making them obsolete.
It is therefore critical that there be a strong focus on how employees can use their existing skill set alongside algorithms to make more high-level and tactical business decisions, as this combination of human and machine is likely to be the future of work in many occupations. It will probably be more than a few years before the machine learning algorithms are able to navigate alone and make superhuman decisions in an open world setting, meaning mass unemployment due to the rise of the machines is not a likely scenario in the near future.
Always Experiment
With new data being generated from IoT sources, it is important to explore new data sets and see how they can be used to augment your existing models. There is a constant flow of new data waiting to be discovered.
Perhaps including two new variables from an obscure data set into your model will increase the precision of the leads generating model by 5% — and perhaps not. The point is to always experiment and not be afraid to fail. Like all other scientific inquires, failed attempts abound, and the winners are those who keep on trying.
Create an environment that promotes experimentation and that tries to make incremental improvements to existing business processes. This will make it easier for data scientist to introduce new models and will also set the focus on the smaller improvements, which are a lot less risky than the larger grand visions. Remember, data science is still a lot like software development and the more complex the project becomes the more likely it is to fail.
Try building an app that your customers or suppliers can use to interact with your services. This will make it easier to gather relevant data. Create incentives to promote usage of the app which will increase the amount of data being generated. It is also imperative that the UX of the app be appealing and promotes use.
We might need to venture outside of our comfort zones to take on the opportunities and challenges that this digital gold brings. As the amount of data continues to grow, machine learning algorithms get smarter and our computational abilities improve, we will need to adapt. Hopefully, by creating a strong environment for using data science your company will be better prepared for what the future will bring.
Applications / Uses of Data Science
Using data science, companies have become intelligent enough to push & sell products as per customer’s purchasing power & interest. Here’s how they are ruling our hearts and minds:
Internet Search
When we speak of search, we think ‘Google’. Right? But there are many other search engines like Yahoo, Bing, Ask, AOL, Duckduckgo etc. All these search engines (including Google) make use of data science algorithms to deliver the best result for our searched query in fraction of seconds. Considering the fact that, Google processes more than 20 petabytes of data every day. Had there been no data science, Google wouldn’t have been the ‘Google’ we know today.
Tumblr media
Digital Advertisements (Targeted Advertising and re-targeting)
If you thought Search would have been the biggest application of data science and machine learning, here is a challenger – the entire digital marketing spectrum. Starting from the display banners on various websites to the digital bill boards at the airports – almost all of them are decided by using data science algorithms.
This is the reason why digital ads have been able to get a lot higher CTR than traditional advertisements. They can be targeted based on users past behavior. 
Speech Recognition
Some of the best example of speech recognition products are Google Voice, Siri, Cortana etc. Using speech recognition feature, even if you are not in position to type a message, your life wouldn’t stop. Simply speak out the message and it will be converted to text. However, at times, you would realize, speech recognition doesn’t perform accurately.
Tumblr media
Image Recognition
You upload your image with friends on Facebook and you start getting suggestions to tag your friends. This automatic tag suggestion feature uses face recognition algorithm. Similarly, while using whats app web, you scan a bar code in your web browser using your mobile phone. In addition, Google provides you the option to search for images by uploading them. It uses image recognition and provides related search results.
Tumblr media
Gaming
EA Sports, Zynga, Sony, Nintendo, Activision-Blizzard have led gaming experience to the next level using data science. Games are now designed using machine learning algorithms which improve / upgrade themselves as the player moves up to a higher level. In motion gaming also, your opponent (computer) analyzes your previous moves and accordingly shapes up its game.
Tumblr media
Fraud and Risk Detection
 One of the first applications of data science originated from Finance discipline. Companies were fed up of bad debts and losses every year. However, they had a lot of data which use to get collected during the initial paper work while sanctioning loans. They decided to bring in data science practices in order to rescue them out of losses. Over the years, banking companies learned to divide and conquer data via customer profiling, past expenditures and other essential variables to analyze the probabilities of risk and default. Moreover, it also helped them to push their banking products based on customer���s purchasing power
Tumblr media
Airline Route Planning
Airline Industry across the world is known to bear heavy losses. Except a few airline service providers, companies are struggling to maintain their occupancy ratio and operating profits. With high rise in air fuel prices and need to offer heavy discounts to customers has further made the situation worse. It wasn’t for long when airlines companies started using data science to identify the strategic areas of improvements. Now using data science, the airline companies can:
1.   Predict flight delay
2.   Decide which class of airplanes to buy
3.   Whether to directly land at the destination, or take a halt in between (For example: A flight can have a direct route from New Delhi to New York. Alternatively, it can also choose to halt in any country.)
4.   Effectively drive customer loyalty programs
Southwest Airlines, Alaska Airlines are among the top companies who’ve embraced data science to bring changes in their way of working
Tumblr media
Coming Up In Future
Though, not much has been reveled about them except the prototypes, and neither I know when they would be available for a common man’s disposal. Hence,  We need to wait and watch how far Google can become successful in their self driving cars project. 
Self Driving Cars
Tumblr media
1 note · View note
bluedreamcarts · 3 years
Text
Buy Your Gmail Account In The Easiest Way!
Buy gmail accounts  There could be numerous reasons why you may need to create another Gmail account and email address. Perhaps, you might be keen to make good use of the Google tools to which an individual can only get access after signing up for Gmail. You might have got fed up with other email service providers who offer little storage capacity for your mailbox. You might be in real need of a professional email service that you can hardly imagine from other email service providers. Whatever the case could be, creating a Gmail account is a relatively convenient process that can be done in a couple of minutes.
This speedy process requires an internet connection to begin with. You may choose a PC or a Smartphone to get done it. A Smartphone with internet access would be ideal equipment as you will receive a verification call or password on your phone to finish with the email signup. Let's find out in detail about how to create a gmail account first.
How to open a Gmail account?
To begin with the process, begin by heading off to the Gmail home page. To reach the home page, you will need to enter the URL www.Google.com or gmail.com into the address bar of your browser. Alternatively, you may simply type "Gmail" in Google search and click on the official link of Gmail that appears first in the organic search. It will also take you to the Gmail home page.
Now, you will find a sign-in box where an email holder normally keys in the Gmail username and secret key to login to his Gmail account. Since you are starting with the process, you will simply need to click the link saying "Create Account" in order to proceed to the Gmail registration page.
Steps to Creating Your New Gmail Account
1. Enter your basic information:
Enter your basic details such as your name, gender, and date of birth. This is the point where you will pick your Gmail username and it could be anything as per your wish. It's best to choose your name initials in the username which makes sense when you apply for jobs in the future. Also, it needs to be unique or else Gmail won't approve it.
2. Choose a username:
Buy gmail accounts  As soon as you are done with the Gmail username, you can proceed to create a password for your email. Always go for a long password that contains a good mix of numbers, alphabets and special characters. The strong password adds an extra layer of security to your account. So, pick accordingly. Once you have entered it, type it again to confirm it in the box provided for the purpose.
3. Link your phone number and existing email:
Now, Google will ask for your phone number or your existing email address for the purpose of securing and linking it to your new Gmail.com account. This feature gives your Gmail account an extra layer of security and you can proceed with the two-step authentication.
4. Agree to the terms and you are done:
Now, agree to Google's TOS, and enter the Captcha as shown in the picture to prove that you are a human. Click on the next step. Bingo! You have successfully signed up with Gmail and can access the inbox now.
If you have even a passing interest in the topic of GMail, then you should take a look at the following information. This enlightening article presents some of the latest news on the subject of GMail.
Google's email service has stopped playing hard to get.
Google's Gmail, operated on a test basis since last spring, this week dramatically increased the potential number of users of the Web-based service. The move could mean Google is getting ready for a public rollout of Gmail -- a development that would heighten Google's competition for usage and advertising dollars with Yahoo! and Microsoft's both of which offer free Web-based email services as well. Some subscribers to Gmail -- which since it launched has been available only by invitation from Google or current users of the service -- this week discovered that they had 50 invitations to Gmail that they can pass on to friends and acquaintances. Previously, Google has doled out no more than a half-dozen invitations at a time to Gmail users.
A Google spokesman confirmed Friday that some users of the service were getting an increased number of invitations, saying it was part of Google's continuing efforts to expand the service. The spokesman, however, wouldn't provide any information about when Google might bring Gmail out of its test phase into general release.
Even in its limited release, Gmail has already remade the landscape of free email service on the Internet. One of the service's distinguishing characteristics is that it provides users with 1 gigabyte of free storage space. At the time Gmail debuted, Yahoo!, for example, was offering users a maximum of six megabytes of free storage.
Since then, Yahoo! has raised its storage capacity on free accounts to 250 megabytes and has upped storage capacity on paid email accounts to 2 gigabytes.
Now that we've covered those aspects of GMail, let's turn to some of the other factors that need to be considered.
When Google announced acquisition of dMarc Broadcasting, a digital media solutions and services firm, it became clearer Google has no intentions of stopping at the arbitrary boundaries of the Internet. DMarc is in two businesses: technology and a media network that places ads digitally and remotely into rotation on stations with the dMarc technology. The station ad sales manager can specify what radio ad inventory to release to the dMarc radio network.
This acquisition puts Google in the traditional radio advertising business with a platform that's already partially self-serve and runs much closer to real time than existing ways of buying radio advertising. Sound familiar? It's like AdWords with digital audio files, and radio stations, geographies, and dayparts instead of keywords. If you currently buy radio advertising, Google will soon have some new things to offer you. Buy gmail accounts news, but perhaps Google will implement its famous auction methodology for radio ads, controlled by its combined system. If that happens (and I'm betting it will) the insertion order (IO) process that guarantees ad rotation will be replaced by an ad-spot auction running in near real time. Soon you'll be bidding for each defined group of ad spots against all the other marketers who want to reach the same audience. In an auction for radio or TV ad inventory, you're fighting every marketer, not just industry-specific competition.
Buying media is going to get a lot more interesting. Most analysts and pundits view this acquisition as Google's lateral expansion into other ad media that can be defined, priced, trafficked, and delivered to the media source digitally. And they're right. If highly valuable, easily definable, scarce advertising assets are allocated in an auction, media buyers and marketers must get used to an entirely new way of buying advertising space in radio, TV, cable, and perhaps print for pre-identified ad placements. Yet there's another fascinating potential facet of the dMarc deal fewer analysts are talking about: the applicability of digital audio/video ad marketplaces to podcasts and streaming Internet radio. ITunes and its competitors distributes paid content and ad-supported, free podcasts. However, most podcast platforms don't dynamically insert the ad into a podcast based on recipient. Wouldn't it be far better if podcast ads were targeted to each listener, making them more relevant? Of course it would. The premise of better targeting and improved relevance is an underlying concept behind the AdWords and AdSense systems. These systems already narrowcast text ads, specifically at users who either have performed a search or are engaged in narrowly focused content.
With digital audio/video ad targeting and trafficking, an advertising system can easily use more than context to target ads. Podcasts or streaming Internet radio shows consisting of news, for example, often provide a poor contextual basis for ad targeting, just as they do in analogue form. But podcasts are often subscribed to on an individual basis, and online radio could require registration. Individual user registration becomes a killer advantage in targeting ads in a more relevant way, even better than targeting at the household level. If Google, MSN, Yahoo, or any other ad server knew I'm about to have my first child (which I am) together with my Zip Code, age, and gender, it could use that data and a podcast's context to serve me advertising so relevant I may actually listen -- or watch.
Suddenly, repurposing audio and video content for online podcast or real-time distribution will have an ad-supported model that provides existing content owners with a new source of revenue and stimulates new content development. If I can spare the time, I'll put together some podcasts of my own as soon as the ad revenue models or pay-per-view infrastructure has proven itself.
Though as history has proven itself those who get in early reap the greatest profits.
0 notes
webbygraphic001 · 5 years
Text
Android Fans Rejoice, Vivaldi Has Arrived
Tumblr media
It’s time for me to go all fanboy on you guys, because Vivaldi is on Android, ya’ll! Vivaldi the browser, that is. You know, the one made by former Opera devs, and which is aimed at power users who want loads of customization and choice, plus a little privacy.
It’s the browser I’ve been using and only mildly worshipping for a while, now. Look, it’s just best if we make it clear that I am biased. Though I do worry that too many browsers are based on the Chromium project these days, I give Vivaldi a pass because it’s just that good. It’s been my day-to-day browser on the desktop since version 2.0 released in October 2018, and now it’s going to be my main browser on my phone.
Well, I might wait until it’s out of beta. We’ll see.
So what do you get in this version of Vivaldi for Android?
Vivaldi Features
Encrypted Sync – You can synchronize all of your bookmarks, history, and other data with the mobile version, no problem. Not done reading an article you started on your desktop or laptop? Open the menu and hit “Recent Tabs”. Tabs from other devices will be there too.
Notes: This is end-to-end encryption, so the people that make Vivaldi never see your data. It won’t sync your extensions, for obvious reasons.
Lite Mode – This is a browsing mode designed to save you data while you’re on the go. Like Opera’s Turbo Mode before it, it routes your browsing through their own servers, where they compress the data you receive on your end. I have no idea if this is encrypted, though. I haven’t been able to find too much in-depth information on this feature.
Notes – The Notes app in Vivaldi’s desktop version made it to the mobile version. They’re dead-simple text based notes, but they do get synced across devices with everything else.
Tumblr media
Page Capture – It does what it says on the tin. You can capture what’s visible on your screen, or you can capture the whole darned page. Keep in mind that mobile pages can get very, very long, as the page’s width gets squished down to mobile sizes.
Search Engine Nicknames – So when you’re typing in a URL bar, you can type “g ducks” to search on Google for ducks, or “w ducks” to search Wikipedia, or “b Google” for reasons that I’m sure you can guess.
Reader Mode – This is a great feature that many other browsers already have, but hey, it’s good that Vivaldi has it, too. Cut out all distractions, and just get to the article already with the push of a button.
Tab Management – Okay, let’s be real. It’s easy enough to browse through your existing tabs, recently closed tabs, and even tabs from other devices. Those features are all well and good, but you’re just not going to get the same depth of tab organization tools. At least… not yet. It’s a beta of the first version, so I’d expect more advanced tab management to come along, down the road.
(Oh, and in this beta version, tab previews don’t always load.)
Private Browsing – It would be dumb if they didn’t have it.
Important features they didn’t bother to mention – As with the desktop version, one of Vivaldi’s strongest selling points is the feature that you will probably use only once: the settings screen. They’ve got loads of options that allow you to customize how the browser works, particularly in regards to privacy.
First Impressions of Vivaldi for Android
It feels snappy. For context, my current phone is a Xiaomi Redmi Note 5A; it’s not particularly high-end, but it’s not slouch either. Even so, I’ve had Chrome and even Firefox sometimes feel sluggish and annoying. I’ve just started using Vivaldi, but I can say that so far it feels faster and smoother.
Will it stay that way? Time will tell.
As it is, they also pay attention to detail, and they are considering the needs of a variety of users. Case in point: there’s a button that allows you to access the search/URL bar at the bottom of the screen, so you can use the browser one-handed. Heck, it even makes two-handed browsing easier, depending on the size of your phone.
Tumblr media
The one thing I most miss from the desktop version is an ad blocker. That’s right, no native ad blocking with Vivaldi on Android. It’s very sad.
All in all, though, I believe Vivaldi’s mobile version is a strong contender.
Source from Webdesigner Depot https://ift.tt/2N9HqXq from Blogger https://ift.tt/2QiAf1x
0 notes
appdesignworld-blog · 5 years
Text
Apps Within Apps: UX Lessons from WeChat Mini Programs
WeChat, the most popular social Mobile App Development company  application in China, had 1 billion monthly active users as of March 2018. A product update at the end of 2017 introduced a new significant function from the program: WeChat miniature programs (such as mini games). Mini apps are much like programs, but they're built within WeChat: they believe as though apps within a bigger app.
Mobile site
Native app
WeChat official accounts for that Provider
We wondered how Folks perceive the gap between these different Stations and whether specific jobs are better suited to a single channel than to another. To find out, we conducted a usability-testing research with 10 WeChat consumers in Beijing.
Even in the Event That You won't be designing a WeChat miniature app, the user-experience Consequences of the type of extensible user interface really are intriguing. Traditionally, websites and software programs are closed packages that can't be extended by consumers or third party providers. In contrast, the WeChat mini apps are another experience architecture, associated with goods such as:
Add-ins for broad software packages, such as browser Toolbars and spreadsheet toolpacks (e.g., statistical analysis features which may be inserted into Excel for those few users who perform ANOVAs, without confusing the huge masses)
Facebook Messenger App, which affirms third-party matches, News, and shopping services within the Gamesand Discover segments of the app.
Integration apps Provided by SaaS (Software as a Service) Companies (by way of instance, Slack users can install integrations that let them connect to a Google Calendar event or a Trello card directly from within the Slack application.)
Intro to WeChat Mini Programs
For those not familiar with miniature programs, below are a Couple of examples of What they are and how they work.
Mini apps are mobile programs built for and within the WeChat platform. There are mini programs for games, food shipping, shopping, ticket revenue, home solutions, image editing, and more.
Users mentioned this feature and believed that it would Save storage space on their phone.
Discovery happens primarily from online social sharing and Offline QR-code scanning. Offline, ads with QR-codes promote miniature programs. By way of example, a shopping mall promoted a miniature application for prepaying parking fees.
Mini apps can be accessed in the WeChat home display, but Because WeChat's chief function is chatting, the house screen is devoted to current conversations. To see mini apps, users will need to swipe down from the top; this action shows a listing of recently used miniature apps. Although swiping was easy and convenient for regular min-program users, new or infrequent users weren't likely to detect programs in their own unless they staged down or someone shared a program with them.
5 UX Lessons from WeChat Mini Programs
1. Maintain the core functionality and content that users expect.
Individuals who have used your business's (full-sized) app have mental Models and expectations concerning the material or services you provide. If a miniature version of an application makes it almost impossible for users to find the center content they want, people will use the app they're acquainted with rather.
Of the JD shopping miniature program was not as informative as the JD mobile program:"On the [cellular app's] homepage, I can browse for discount information [she swipes via the carousel of pictures at the top]. It also displays whatever I've seen and bought, and recommends more similar items. All that information will probably NOT be shown from the mini program." She believed that the miniature program had less content, and so she did not want to store on it. Another user, a 24-year-old female, had a similar Issue Using a mini-program version of a food-delivery service called Meituan. "The first thing I do when I open the delivery app is getting a few coupons. That app will automatically demonstrate some coupons every time you log into, and that I don't know if the miniature program is going to do that." She opened the miniature program and was frustrated:"No, there aren't any [vouchers ]. This is all expensive. Also, there aren't as many promotions displayed [in the carousel] as in the business app."
If a mini program can't do everything that the cellular app can, it must Support a handoff solution--an easy way for users to move between the mini program and the mobile app or website to view the full content.
2. Always consider the context of use. On cellular, support Quick pursuits and layout for interruption.
Throughout our study, many people complained that if a WeChat message arrived While they have been in a mini program, they couldn't readily check the message and resume their activity from the program. Rather, they needed to give up the program to see messages. Regrettably, some miniature programs did not save users' progress, forcing them to begin again. Since, in its heart, WeChat is a social-communication tool, miniature programs should be made to accommodate multitasking. To minimize the chance of disturbance, flows should be effective and have minimum interaction price. Here are some suggestions for implementing these principles:
Save users' progress in order that they can go back to a job later. A Racing mini game called Joyful Ball enabled users to save their progress and return to it later. A 20-year-old male user complimented this attribute:"I play it mainly on public transport and in class once I am bored. It is all fragmented moment. This allows me to stop and go back to it without losing my place, which is good."
This type of reminder will help users who whined that they had left something in their own shopping cart. Item from the cart.
Minimize consumer attempt by having good defaults based on WeChat-account data. By way of example, the JD miniature program could automatically fill users' information (address and phone number) on the webpage, because JD accounts are directly connected to customers' WeChat accounts. Therefore, even users who start the JD miniature app for the first time may appreciate"one-click payment" and not have to enter their information.
3. Take advantage of the platform's core functionality.
Many users said that they learned about most mini programs and miniature Games from group chats or by friends. Good mini programs make the most of the WeChat's core functionality, which is communication. By way of instance, JD's mini program promoted bunch purchases on the homepage even more than the mobile app did. (Group purchases operate by providing a discount on a product if enough people agree to purchase the product. When an item doesn't get enough orders, no one receives the item.) The emphasis on team purchases makes sense in the WeChat circumstance, because the platform makes it easy for users to share a link to their WeChat friends and encourage them to participate in a group purchase.
Encouraging users to share is good for your organization. But Don't overdo it! During our testing, many users complained that miniature programs, especially mini games, driven them to share content with other people. Participants explained,"If I need to talk about a game to get rewards and continue playing, I'd rather not even get the benefits," and"Compulsory sharing is your worst." A 20-year-old man user stated,"People will share on their own in case you have really great content -- Don't force me to perform it like a pyramid scheme."
4. Design miniature apps with infrequent users in your mind.
Many of our research participants stated that they prefer mini programs for Services that they only use sometimes, to save space on their phone. By way of instance, a user explained,"If I just need to use the function once a month, I'd use the mini program. By way of instance, dry cleaning. I do not need to download an app for cleaning. I could only use the mini program." Designers must figure out the requirements of occasional customers and tackle them at the mini app directly.
A fantastic example is the SF Express mini application for postal shipments. Compared with the more comprehensive mobile program, this mini program addressed occasional usage by centering the layout around the most common user activity, Schedule pickup.
App (left) featured Program   react native development company  pickup, which was the primary demand for consumers who sometimes used the support; compared, the corresponding mobile program (appropriate ) had many more features. Infrequent use necessitates intense usability and also an emphasis On quick learning, because you can't assume that users will accumulate knowledge about the layout with extended use. Traditional usability guidelines also apply to miniature programs. Here's an illustration from our study:
Design easy navigation for learnability. For Example, Carrefour's miniature program used texts and icons in the navigation bar, which has been favorable for older adults. A 55-year-old male user who didn't even know how to search for a mini program might easily browse different categories and things in this program, since it was easy and intuitive enough.
5. Confirm smooth cross-channel transitions.
A customer can interact with an organization on many different stations: The mobile app, a mobile site, a desktop site, a WeChat mini program, a WeChat official accounts, and so on. Designers should consider that the entire customer journey, providing a smooth user experience across channels.
Simplify channel switching. A Fantastic example is How JD shopping told users once the thing they wanted was back in stock. Since, unlike WeChat official reports, mini programs are not able to send notifications, the JD mini app offered a QR-code of their corresponding JD WeChat official account; after this accounts allowed users to get messages from JD and discover when their item became available. During our testing, a user followed this procedure and got a notification for the VR glasses he wished to order. He remarked,"it's quite considerate of this company."
Deliver some content before requesting users to switch to another Channel. Switching between stations has a high perceived price: users need to think that the transition would be well worth the effort so as to create it. During our testing, 1 mini program required an individual to follow along with the company's WeChat accounts to get more information about its products. Since this petition was too much too soon (she'd hardly opened the mini program and clicked a button), she left the program immediately.
A miniature program asked Users to subscribe to the organization's WeChat account shortly after they opened the program and then clicked on a button on the homepage. 1 study manager left the mini programimmediately.
Offer easy avenues for switching channels. Throughout She wanted to download the cell program, but she browsed and couldn't find any method to access the cell program from the miniature program.
Conclusion
WeChat mini programs are a brand new interaction channel; such new stations can Be anticipated to arise anywhere, any time. Designers must be nimble and adapt their products to these new ways of interaction.
To take advantage of these new microsoft  opportunities, it is important to Know their strengths and limitations. If you find yourself designing an app in a app or designing for limited-functionality channels (e.g., a smartwatch, a voice assistant), keep these points in mind:
Add value to this product based on the circumstance and Frequency of use.
Think about the cost of switching stations and how to create transitions seamless.
Deliver content and graphics for this platform's users.
0 notes
giancarlonicoli · 5 years
Link
Google's Chrome is essentially spy software according to Washington Post tech columnist Geoffrey Fowler, who spent a week analyzing the popular browser and concluded that it "looks a lot like surveillance software."
Fowler has since switched to Mozilla's Firefox because of its default privacy settings, and says that it was easier than one might imagine.
My tests of Chrome vs. Firefox unearthed a personal data caper of absurd proportions. In a week of Web surfing on my desktop, I discovered 11,189 requests for tracker “cookies” that Chrome would have ushered right onto my computer but were automatically blocked by Firefox. These little files are the hooks that data firms, including Google itself, use to follow what websites you visit so they can build profiles of your interests, income and personality.
Chrome welcomed trackers even at websites you would think would be private. I watched Aetna and the Federal Student Aid website set cookies for Facebook and Google. They surreptitiously told the data giants every time I pulled up the insurance and loan service’s log-in pages.
And that’s not the half of it.
Look in the upper right corner of your Chrome browser. See a picture or a name in the circle? If so, you’re logged in to the browser, and Google might be tapping into your Web activity to target ads. Don’t recall signing in? I didn’t, either. Chrome recently started doing that automatically when you use Gmail. -Washington Post
Meanwhile, Chrome is even worse when it comes to mobile devices - reporting the precise location of Android users unless location sharing is turned off, in which case it will send out your rough coordinates.
Cookie monsters
According to one study, tracking cookies from third-parties are on 92% of websites. The Washington Post, for example, uses around 40 - which the company said is "average for a news site," and says they are designed to deliver better-targeted ads and track ad performance.
But cookies can also be found on websites with no advertising.
Both Aetna and the FSA service said the cookies on their sites help measure their own external marketing campaigns.
The blame for this mess belongs to the entire advertising, publishing and tech industries. But what responsibility does a browser have in protecting us from code that isn’t doing much more than spying? -Washington Post
Mozilla to the rescue?
For the past four years or so, Firefox browser has had a built-in anti-tracking feature for the past four or so years in its "private" browsing mode. Earlier this month, Mozilla activated this feature for normal browsing mode. While ads will still appear, Firefox is now separating cookies in real time to determine which ones are required for a website to function correctly, and which ones are simply spies.
Apple began to block cookies on their Safari mobile browser starting in 2017, using an algorithm the company calls "intelligent tracking protection."
Chrome, meanwhile, continues to welcome cookies onto your computer and phone with open arms. That said, the company announced last month that it would require third-party cookies to better identify themselves, which will supposedly allow them to apply better controls. That said, the company did not offer The Post a timeline or say whether it would employ default tracking blockers.
I’m not holding my breath. Google itself, through its Doubleclick and other ad businesses, is the No. 1 cookie maker — the Mrs. Fields of the Web. It’s hard to imagine Chrome ever cutting off Google’s moneymaker. -Washington Post
"Cookies play a role in user privacy, but a narrow focus on cookies obscures the broader privacy discussion because it’s just one way in which users can be tracked across sites," according to Chrome's director of product management, Ben Galbraith. "This is a complex problem, and simple, blunt cookie blocking solutions force tracking into more opaque practices."
Giving up on Google
In his decision to kick Chrome to the curb, Fowler cites a blog post by Johns Hopkins associate professor Matthew Green, who said last year he was "done" with the browser.
Like Green, I’ve chosen Firefox, which works across phones, tablets, PCs and Macs. Apple’s Safari is also a good option on Macs, iPhones and iPads, and the niche Brave browser goes even further in trying to jam the ad-tech industry.
What does switching to Firefox cost you? It’s free, and downloading a different browser is much simpler than changing phones.
In 2017, Mozilla launched a new version of Firefox called Quantum that made it considerably faster. In my tests, it has felt almost as fast as Chrome, though benchmark tests have found it can be slower in some contexts. Firefox says it’s better about managing memory if you use lots and lots of tabs.
Switching means you’ll have to move your bookmarks, and Firefox offers tools to help. Shifting passwords is easy if you use a password manager. And most browser add-ons are available, though it’s possible you won’t find your favorite. -Washington Post
Perhaps Fowler can reach out to some of his Washington Post colleagues to see what their many sources in the US intelligence community think of Chrome vs. Firefox...
0 notes
laurelkrugerr · 4 years
Text
Solving Common Cross-Platform Issues When Working With Flutter
About The Author
Flutter and LinUX enthusiast, author of the Programming Flutter book with the Pragmatic Bookshelf. Blogs more, tweets less. More about Carmine …
When using cross-platform frameworks, people might forget the nuances of each of the platforms they want their code to run on. This article aims to address that.
I’ve seen a lot of confusion online regarding Web development with Flutter and, often, it’s sadly for the wrong reasons.
Specifically, people sometimes confuse it with the older Web-based mobile (and desktop) cross-platform frameworks, which basically were just Web pages running within browsers running within a wrapper app.
That was truly cross-platform in the sense that the interfaces were the same anyway because you only had access to the interfaces normally accessible on the Web.
Flutter isn’t that, though: it runs natively on each platform, and it means each app runs just like it would run if it were written in Java/Kotlin or Objective-C/Swift on Android and iOS, pretty much. You need to know that because this implies that you need to take care of the many differences between these very diverse platforms.
In this article, we’re going to see some of those differences and how to overcome them. More specifically, we’re going to talk about storage and UI differences, which are the ones that most often cause confusion to developers when writing Flutter code that they want to be cross-platform.
Example 1: Storage
I recently wrote on my blog about the need for a different approach to storing JWTs in Web apps when compared to mobile apps.
That is because of the different nature of the platforms’ storage options, and the need to know each and their native development tools.
Web
When you write a Web app, the storage options you have are:
downloading/uploading files to/from disk, which requires user interaction and is therefore only suitable for files meant to be read or created by the user;
using cookies, which may or may not be accessible from JS (depending on whether or not they’re httpOnly) and are automatically sent along with requests to a given domain and saved when they come as part of a response;
using JS localStorage and sessionStorage, accessible by any JS on the website, but only from JS that is part of the pages of that website.
Mobile
The situation when it comes to mobile apps is completely different. The storage options are the following:
local app documents or cache storage, accessible by that app;
other local storage paths for user-created/readable files;
NSUserDefaults and SharedPreferences respectively on iOS and Android for key-value storage;
Keychain on iOS and KeyStore on Android for secure storage of, respectively, any data and cryptographic keys.
If you don’t know that, you’re going to make a mess of your implementations because you need to know what storage solution you’re actually using and what the advantages and drawbacks are.
Cross-Platform Solutions: An Initial Approach
Using the Flutter shared_preferences package uses localStorage on the Web, SharedPreferences on Android and NSUserDefaults on iOS. Those have completely different implications for your app, especially if you’re storing sensitive information like session tokens: localStorage can be read by the client, so it’s a problem if you’re vulnerable to XSS. Even though mobile apps aren’t really vulnerable to XSS, SharedPreferences and NSUserDefaults are not secure storage methods because they can be compromised on the client side since they are not secure storage and not encrypted. That’s because they are meant for user preferences, as mentioned here in the case of iOS and here in the Android documentation when talking about the Security library which is designed to provide wrappers to the SharedPreferences specifically to encrypt the data before storing it.
Secure Storage On Mobile
The only secure storage solutions on mobile are Keychain and KeyStore on iOS and Android respectively, whereas there is no secure storage on the Web.
The Keychain and KeyStore are very different in nature, though: Keychain is a generic credentials storage solution, whereas the KeyStore is used to store (and can generate) cryptographic keys, either symmetric keys or public/private keys.
This means that if, for instance, you need to store a session token, on iOS you can let the OS manage the encryption part and just send your token to the Keychain, whereas on Android it’s a bit more of a manual experience because you need to generate (not hard-code, that’s bad) a key, use it to encrypt the token, store the encrypted token in SharedPreferences and store the key in the KeyStore.
There are different approaches to that, as are most things in security, but the simplest is probably to use symmetric encryption, as there is no need for public key cryptography since your app both encrypts and decrypts the token.
Obviously, you don’t need to write mobile platform-specific code that does all of that, as there is a Flutter plugin that does all of that, for instance.
The Lack Of Secure Storage On the Web
That was, actually, the reason that compelled me to write this post. I wrote about using that package to store JWT on mobile apps and people wanted the Web version of that but, as I said, there is no secure storage on the Web. It doesn’t exist.
Does that mean your JWT has to be out in the open?
No, not at all. You can use httpOnly cookies, can’t you? Those aren’t accessible by JS and are sent only to your server. The issue with that is that they’re always sent to your server, even if one of your users clicks on a GET request URL on someone else’s website and that GET request has side effects you or your user won’t like. This actually works for other request types as well, it’s just more complicated. It’s called Cross-Site Request Forgery and you don’t want that. It’s among the web security threats mentioned in Mozilla’s MDN docs, where you can find a more complete explanation.
There are prevention methods. The most common one is having two tokens, actually: one of them getting to the client as an httpOnly cookie, the other as part of the response. The latter has to be stored in localStorage and not in cookies because we don’t want it to be sent automatically to the server.
Solving Both
What if you have both a mobile app and a Web app?
That can be dealt with in one of two ways:
Use the same backend endpoint, but manually get and send the cookies using the cookie-related HTTP headers;
Create a separate non-Web backend endpoint that generates different token than either token used by the Web app and then allow for regular JWT authorization if the client is able to provide the mobile-only token.
Running Different Code On Different Platforms
Now, let’s see how we can run different code on different platforms in order to be able to compensate for the differences.
Creating A Flutter Plugin
Especially to solve the problem of storage, one way you can do that is with a plugin package: plugins provide a common Dart interface and can run different code on different platforms, including native platform-specific Kotlin/Java or Swift/Objective-C code. Developing packages and plugins is rather complex, but it’s explained in many places on the Web and elsewhere (for example in Flutter books), including the official Flutter documentation.
For mobile platforms, for instance, there already is a secure storage plugin, and that’s flutter_secure_storage, for which you can find an example of usage here, but that doesn’t work on the Web, for example.
On the other hand, for simple key-value storage that also works on the web, there’s a cross-platform Google-developed first-party plugin package called shared_preferences, which has a Web-specific component called shared_preferences_web which uses NSUserDefaults, SharedPreferences or localStorage depending on the platform.
TargetPlatform on Flutter
After importing package:flutter/foundation.dart, you can compare Theme.of(context).platform to the values:
TargetPlatform.android
TargetPlatform.iOS
TargetPlatform.linUX
TargetPlatform.windows
TargetPlatform.macOS
TargetPlatform.fuchsia
and write your functions so that, for each platform you want to support, they do the appropriate thing. This will come especially useful for the next example of platform difference, and that is differences in how widgets are displayed on different platforms.
For that use case, in particular, there is also a reasonably popular flutter_platform_widgets plugin, which simplifies the development of platform-aware widgets.
Example 2: Differences In How The Same Widget Is Displayed
You can’t just write cross-platform code and pretend a browser, a phone, a computer, and a smartwatch are the same thing — unless you want your Android and iOS app to be a WebView and your desktop app to be built with Electron. There are plenty of reasons not to do that, and it’s not the point of this piece to convince you to use frameworks like Flutter instead that keep your app native, with all the performance and user experience advantages that come with it, while allowing you to write code that is going to be the same for all platforms most of the time.
That requires care and attention, though, and at least a basic knowledge of the platforms you want to support, their actual native APIs, and all of that. React Native users need to pay even more attention to that because that framework uses the built-in OS widgets, so you actually need to pay even more attention to how the app looks by testing it extensively on both platforms, without being able to switch between iOS and Material widget on the fly like it’s possible with Flutter.
What Changes Without Your Request
There are some aspects of the UI of your app that are automatically changed when you switch platforms. This section also mentions what changes between Flutter and React Native in this respect.
Between Android And iOS (Flutter)
Flutter is capable of rendering Material widgets on iOS (and Cupertino (iOS-like) widgets on Android), but what it DOESN’T do is show exactly the same thing on Android and iOS: Material theming especially adapts to the conventions of each platform.
For instance, navigation animations and transitions and default fonts are different, but those don’t impact your app that much.
What may affect some of your choices when it comes to aesthetics or UX is the fact that some static elements also change. Specifically, some icons change between the two platforms, app bar titles are in the middle on iOS and on the left on Android (on the left of the available space in case there is a back button or the button to open a Drawer (explained here in the Material Design guidelines and also known as a hamburger menu). Here’s what a Material app with a Drawer looks like on Android:
Material app running on Android: the AppBar title is in the left side of the available space. (Large preview)
And what the same, very simple, Material app looks like on iOS:
Material app running on iOS: the AppBar title is in the middle. (Large preview)
Between Mobile and Web and With Screen Notches (Flutter)
On the Web there is a bit of a different situation, as mentioned also in this Smashing article about Responsive Web Development with Flutter: in particular, in addition to having to optimize for bigger screens and account for the way people expect to navigate through your site — which is the main focus of that article — you have to worry about the fact that sometimes widgets are placed outside of the browser window. Also, some phones have notches in the top part of their screen or other impediments to the correct viewing of your app because of some sort of obstruction.
Both of these problems can be avoided by wrapping your widgets in a SafeArea widget, which is a particular kind of padding widget which makes sure your widgets fall into a place where they can actually be displayed without anything impeding the users’ ability to see them, be it a hardware or software constraint.
In React Native
React Native requires much more attention and a much deeper knowledge of each platform, in addition to requiring you to run the iOS Simulator as well as the Android Emulator at the very least in order to be able to test your app on both platforms: it’s not the same and it converts its JavaScript UI elements to platform-specific widgets. In other words, your React Native apps will always look like iOS — with Cupertino UI elements as they are sometimes called — and your Android apps will always look like regular Material Design Android apps because it’s using the platform’s widgets.
The difference here is that Flutter renders its widgets with its own low-level rendering engine, which means you can test both app versions on one platform.
Getting Around That Issue
Unless you’re going for something very specific, your app is supposed to look different on different platforms otherwise some of your users will be unhappy.
Just like you shouldn’t simply ship a mobile app to the web (as I wrote in the aforementioned Smashing post), you shouldn’t ship an app full of Cupertino widgets to Android users, for example, because it’s going to be confusing for the most part. On the other hand, having the chance to actually run an app that has widgets that are meant for another platform allows you to test the app and show it to people in both versions without having to use two devices for that necessarily.
The Other Side: Using The Wrong Widgets For The Right Reasons
But that also means that you can do most of your Flutter development on a LinUX or Windows workstation without sacrificing the experience of your iOS users, and then just build the app for the other platform and not have to worry about thoroughly testing it.
Next Steps
Cross-platform frameworks are awesome, but they shift responsibility to you, the developer, to understand how each platform works and how to make sure your app adapts and is pleasant to use for your users. Other small things to consider may be, for example, using different descriptions for what might be in essence the same thing if there are different conventions on different platforms.
It’s great to not have to build the two (or more) apps separately using different languages, but you still need to keep in mind you are, in essence, building more than one app and that requires thinking about each of the apps you are building.
Further Resources
(ra, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/solving-common-cross-platform-issues-when-working-with-flutter/ source https://scpie1.blogspot.com/2020/06/solving-common-cross-platform-issues.html
0 notes
riichardwilson · 4 years
Text
Solving Common Cross-Platform Issues When Working With Flutter
About The Author
Flutter and LinUX enthusiast, author of the Programming Flutter book with the Pragmatic Bookshelf. Blogs more, tweets less. More about Carmine …
When using cross-platform frameworks, people might forget the nuances of each of the platforms they want their code to run on. This article aims to address that.
I’ve seen a lot of confusion online regarding Web development with Flutter and, often, it’s sadly for the wrong reasons.
Specifically, people sometimes confuse it with the older Web-based mobile (and desktop) cross-platform frameworks, which basically were just Web pages running within browsers running within a wrapper app.
That was truly cross-platform in the sense that the interfaces were the same anyway because you only had access to the interfaces normally accessible on the Web.
Flutter isn’t that, though: it runs natively on each platform, and it means each app runs just like it would run if it were written in Java/Kotlin or Objective-C/Swift on Android and iOS, pretty much. You need to know that because this implies that you need to take care of the many differences between these very diverse platforms.
In this article, we’re going to see some of those differences and how to overcome them. More specifically, we’re going to talk about storage and UI differences, which are the ones that most often cause confusion to developers when writing Flutter code that they want to be cross-platform.
Example 1: Storage
I recently wrote on my blog about the need for a different approach to storing JWTs in Web apps when compared to mobile apps.
That is because of the different nature of the platforms’ storage options, and the need to know each and their native development tools.
Web
When you write a Web app, the storage options you have are:
downloading/uploading files to/from disk, which requires user interaction and is therefore only suitable for files meant to be read or created by the user;
using cookies, which may or may not be accessible from JS (depending on whether or not they’re httpOnly) and are automatically sent along with requests to a given domain and saved when they come as part of a response;
using JS localStorage and sessionStorage, accessible by any JS on the website, but only from JS that is part of the pages of that website.
Mobile
The situation when it comes to mobile apps is completely different. The storage options are the following:
local app documents or cache storage, accessible by that app;
other local storage paths for user-created/readable files;
NSUserDefaults and SharedPreferences respectively on iOS and Android for key-value storage;
Keychain on iOS and KeyStore on Android for secure storage of, respectively, any data and cryptographic keys.
If you don’t know that, you’re going to make a mess of your implementations because you need to know what storage solution you’re actually using and what the advantages and drawbacks are.
Cross-Platform Solutions: An Initial Approach
Using the Flutter shared_preferences package uses localStorage on the Web, SharedPreferences on Android and NSUserDefaults on iOS. Those have completely different implications for your app, especially if you’re storing sensitive information like session tokens: localStorage can be read by the client, so it’s a problem if you’re vulnerable to XSS. Even though mobile apps aren’t really vulnerable to XSS, SharedPreferences and NSUserDefaults are not secure storage methods because they can be compromised on the client side since they are not secure storage and not encrypted. That’s because they are meant for user preferences, as mentioned here in the case of iOS and here in the Android documentation when talking about the Security library which is designed to provide wrappers to the SharedPreferences specifically to encrypt the data before storing it.
Secure Storage On Mobile
The only secure storage solutions on mobile are Keychain and KeyStore on iOS and Android respectively, whereas there is no secure storage on the Web.
The Keychain and KeyStore are very different in nature, though: Keychain is a generic credentials storage solution, whereas the KeyStore is used to store (and can generate) cryptographic keys, either symmetric keys or public/private keys.
This means that if, for instance, you need to store a session token, on iOS you can let the OS manage the encryption part and just send your token to the Keychain, whereas on Android it’s a bit more of a manual experience because you need to generate (not hard-code, that’s bad) a key, use it to encrypt the token, store the encrypted token in SharedPreferences and store the key in the KeyStore.
There are different approaches to that, as are most things in security, but the simplest is probably to use symmetric encryption, as there is no need for public key cryptography since your app both encrypts and decrypts the token.
Obviously, you don’t need to write mobile platform-specific code that does all of that, as there is a Flutter plugin that does all of that, for instance.
The Lack Of Secure Storage On the Web
That was, actually, the reason that compelled me to write this post. I wrote about using that package to store JWT on mobile apps and people wanted the Web version of that but, as I said, there is no secure storage on the Web. It doesn’t exist.
Does that mean your JWT has to be out in the open?
No, not at all. You can use httpOnly cookies, can’t you? Those aren’t accessible by JS and are sent only to your server. The issue with that is that they’re always sent to your server, even if one of your users clicks on a GET request URL on someone else’s website and that GET request has side effects you or your user won’t like. This actually works for other request types as well, it’s just more complicated. It’s called Cross-Site Request Forgery and you don’t want that. It’s among the web security threats mentioned in Mozilla’s MDN docs, where you can find a more complete explanation.
There are prevention methods. The most common one is having two tokens, actually: one of them getting to the client as an httpOnly cookie, the other as part of the response. The latter has to be stored in localStorage and not in cookies because we don’t want it to be sent automatically to the server.
Solving Both
What if you have both a mobile app and a Web app?
That can be dealt with in one of two ways:
Use the same backend endpoint, but manually get and send the cookies using the cookie-related HTTP headers;
Create a separate non-Web backend endpoint that generates different token than either token used by the Web app and then allow for regular JWT authorization if the client is able to provide the mobile-only token.
Running Different Code On Different Platforms
Now, let’s see how we can run different code on different platforms in order to be able to compensate for the differences.
Creating A Flutter Plugin
Especially to solve the problem of storage, one way you can do that is with a plugin package: plugins provide a common Dart interface and can run different code on different platforms, including native platform-specific Kotlin/Java or Swift/Objective-C code. Developing packages and plugins is rather complex, but it’s explained in many places on the Web and elsewhere (for example in Flutter books), including the official Flutter documentation.
For mobile platforms, for instance, there already is a secure storage plugin, and that’s flutter_secure_storage, for which you can find an example of usage here, but that doesn’t work on the Web, for example.
On the other hand, for simple key-value storage that also works on the web, there’s a cross-platform Google-developed first-party plugin package called shared_preferences, which has a Web-specific component called shared_preferences_web which uses NSUserDefaults, SharedPreferences or localStorage depending on the platform.
TargetPlatform on Flutter
After importing package:flutter/foundation.dart, you can compare Theme.of(context).platform to the values:
TargetPlatform.android
TargetPlatform.iOS
TargetPlatform.linUX
TargetPlatform.windows
TargetPlatform.macOS
TargetPlatform.fuchsia
and write your functions so that, for each platform you want to support, they do the appropriate thing. This will come especially useful for the next example of platform difference, and that is differences in how widgets are displayed on different platforms.
For that use case, in particular, there is also a reasonably popular flutter_platform_widgets plugin, which simplifies the development of platform-aware widgets.
Example 2: Differences In How The Same Widget Is Displayed
You can’t just write cross-platform code and pretend a browser, a phone, a computer, and a smartwatch are the same thing — unless you want your Android and iOS app to be a WebView and your desktop app to be built with Electron. There are plenty of reasons not to do that, and it’s not the point of this piece to convince you to use frameworks like Flutter instead that keep your app native, with all the performance and user experience advantages that come with it, while allowing you to write code that is going to be the same for all platforms most of the time.
That requires care and attention, though, and at least a basic knowledge of the platforms you want to support, their actual native APIs, and all of that. React Native users need to pay even more attention to that because that framework uses the built-in OS widgets, so you actually need to pay even more attention to how the app looks by testing it extensively on both platforms, without being able to switch between iOS and Material widget on the fly like it’s possible with Flutter.
What Changes Without Your Request
There are some aspects of the UI of your app that are automatically changed when you switch platforms. This section also mentions what changes between Flutter and React Native in this respect.
Between Android And iOS (Flutter)
Flutter is capable of rendering Material widgets on iOS (and Cupertino (iOS-like) widgets on Android), but what it DOESN’T do is show exactly the same thing on Android and iOS: Material theming especially adapts to the conventions of each platform.
For instance, navigation animations and transitions and default fonts are different, but those don’t impact your app that much.
What may affect some of your choices when it comes to aesthetics or UX is the fact that some static elements also change. Specifically, some icons change between the two platforms, app bar titles are in the middle on iOS and on the left on Android (on the left of the available space in case there is a back button or the button to open a Drawer (explained here in the Material Design guidelines and also known as a hamburger menu). Here’s what a Material app with a Drawer looks like on Android:
Material app running on Android: the AppBar title is in the left side of the available space. (Large preview)
And what the same, very simple, Material app looks like on iOS:
Material app running on iOS: the AppBar title is in the middle. (Large preview)
Between Mobile and Web and With Screen Notches (Flutter)
On the Web there is a bit of a different situation, as mentioned also in this Smashing article about Responsive Web Development with Flutter: in particular, in addition to having to optimize for bigger screens and account for the way people expect to navigate through your site — which is the main focus of that article — you have to worry about the fact that sometimes widgets are placed outside of the browser window. Also, some phones have notches in the top part of their screen or other impediments to the correct viewing of your app because of some sort of obstruction.
Both of these problems can be avoided by wrapping your widgets in a SafeArea widget, which is a particular kind of padding widget which makes sure your widgets fall into a place where they can actually be displayed without anything impeding the users’ ability to see them, be it a hardware or software constraint.
In React Native
React Native requires much more attention and a much deeper knowledge of each platform, in addition to requiring you to run the iOS Simulator as well as the Android Emulator at the very least in order to be able to test your app on both platforms: it’s not the same and it converts its JavaScript UI elements to platform-specific widgets. In other words, your React Native apps will always look like iOS — with Cupertino UI elements as they are sometimes called — and your Android apps will always look like regular Material Design Android apps because it’s using the platform’s widgets.
The difference here is that Flutter renders its widgets with its own low-level rendering engine, which means you can test both app versions on one platform.
Getting Around That Issue
Unless you’re going for something very specific, your app is supposed to look different on different platforms otherwise some of your users will be unhappy.
Just like you shouldn’t simply ship a mobile app to the web (as I wrote in the aforementioned Smashing post), you shouldn’t ship an app full of Cupertino widgets to Android users, for example, because it’s going to be confusing for the most part. On the other hand, having the chance to actually run an app that has widgets that are meant for another platform allows you to test the app and show it to people in both versions without having to use two devices for that necessarily.
The Other Side: Using The Wrong Widgets For The Right Reasons
But that also means that you can do most of your Flutter development on a LinUX or Windows workstation without sacrificing the experience of your iOS users, and then just build the app for the other platform and not have to worry about thoroughly testing it.
Next Steps
Cross-platform frameworks are awesome, but they shift responsibility to you, the developer, to understand how each platform works and how to make sure your app adapts and is pleasant to use for your users. Other small things to consider may be, for example, using different descriptions for what might be in essence the same thing if there are different conventions on different platforms.
It’s great to not have to build the two (or more) apps separately using different languages, but you still need to keep in mind you are, in essence, building more than one app and that requires thinking about each of the apps you are building.
Further Resources
(ra, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/solving-common-cross-platform-issues-when-working-with-flutter/ source https://scpie.tumblr.com/post/621342349322289152
0 notes
scpie · 4 years
Text
Solving Common Cross-Platform Issues When Working With Flutter
About The Author
Flutter and LinUX enthusiast, author of the Programming Flutter book with the Pragmatic Bookshelf. Blogs more, tweets less. More about Carmine …
When using cross-platform frameworks, people might forget the nuances of each of the platforms they want their code to run on. This article aims to address that.
I’ve seen a lot of confusion online regarding Web development with Flutter and, often, it’s sadly for the wrong reasons.
Specifically, people sometimes confuse it with the older Web-based mobile (and desktop) cross-platform frameworks, which basically were just Web pages running within browsers running within a wrapper app.
That was truly cross-platform in the sense that the interfaces were the same anyway because you only had access to the interfaces normally accessible on the Web.
Flutter isn’t that, though: it runs natively on each platform, and it means each app runs just like it would run if it were written in Java/Kotlin or Objective-C/Swift on Android and iOS, pretty much. You need to know that because this implies that you need to take care of the many differences between these very diverse platforms.
In this article, we’re going to see some of those differences and how to overcome them. More specifically, we’re going to talk about storage and UI differences, which are the ones that most often cause confusion to developers when writing Flutter code that they want to be cross-platform.
Example 1: Storage
I recently wrote on my blog about the need for a different approach to storing JWTs in Web apps when compared to mobile apps.
That is because of the different nature of the platforms’ storage options, and the need to know each and their native development tools.
Web
When you write a Web app, the storage options you have are:
downloading/uploading files to/from disk, which requires user interaction and is therefore only suitable for files meant to be read or created by the user;
using cookies, which may or may not be accessible from JS (depending on whether or not they’re httpOnly) and are automatically sent along with requests to a given domain and saved when they come as part of a response;
using JS localStorage and sessionStorage, accessible by any JS on the website, but only from JS that is part of the pages of that website.
Mobile
The situation when it comes to mobile apps is completely different. The storage options are the following:
local app documents or cache storage, accessible by that app;
other local storage paths for user-created/readable files;
NSUserDefaults and SharedPreferences respectively on iOS and Android for key-value storage;
Keychain on iOS and KeyStore on Android for secure storage of, respectively, any data and cryptographic keys.
If you don’t know that, you’re going to make a mess of your implementations because you need to know what storage solution you’re actually using and what the advantages and drawbacks are.
Cross-Platform Solutions: An Initial Approach
Using the Flutter shared_preferences package uses localStorage on the Web, SharedPreferences on Android and NSUserDefaults on iOS. Those have completely different implications for your app, especially if you’re storing sensitive information like session tokens: localStorage can be read by the client, so it’s a problem if you’re vulnerable to XSS. Even though mobile apps aren’t really vulnerable to XSS, SharedPreferences and NSUserDefaults are not secure storage methods because they can be compromised on the client side since they are not secure storage and not encrypted. That’s because they are meant for user preferences, as mentioned here in the case of iOS and here in the Android documentation when talking about the Security library which is designed to provide wrappers to the SharedPreferences specifically to encrypt the data before storing it.
Secure Storage On Mobile
The only secure storage solutions on mobile are Keychain and KeyStore on iOS and Android respectively, whereas there is no secure storage on the Web.
The Keychain and KeyStore are very different in nature, though: Keychain is a generic credentials storage solution, whereas the KeyStore is used to store (and can generate) cryptographic keys, either symmetric keys or public/private keys.
This means that if, for instance, you need to store a session token, on iOS you can let the OS manage the encryption part and just send your token to the Keychain, whereas on Android it’s a bit more of a manual experience because you need to generate (not hard-code, that’s bad) a key, use it to encrypt the token, store the encrypted token in SharedPreferences and store the key in the KeyStore.
There are different approaches to that, as are most things in security, but the simplest is probably to use symmetric encryption, as there is no need for public key cryptography since your app both encrypts and decrypts the token.
Obviously, you don’t need to write mobile platform-specific code that does all of that, as there is a Flutter plugin that does all of that, for instance.
The Lack Of Secure Storage On the Web
That was, actually, the reason that compelled me to write this post. I wrote about using that package to store JWT on mobile apps and people wanted the Web version of that but, as I said, there is no secure storage on the Web. It doesn’t exist.
Does that mean your JWT has to be out in the open?
No, not at all. You can use httpOnly cookies, can’t you? Those aren’t accessible by JS and are sent only to your server. The issue with that is that they’re always sent to your server, even if one of your users clicks on a GET request URL on someone else’s website and that GET request has side effects you or your user won’t like. This actually works for other request types as well, it’s just more complicated. It’s called Cross-Site Request Forgery and you don’t want that. It’s among the web security threats mentioned in Mozilla’s MDN docs, where you can find a more complete explanation.
There are prevention methods. The most common one is having two tokens, actually: one of them getting to the client as an httpOnly cookie, the other as part of the response. The latter has to be stored in localStorage and not in cookies because we don’t want it to be sent automatically to the server.
Solving Both
What if you have both a mobile app and a Web app?
That can be dealt with in one of two ways:
Use the same backend endpoint, but manually get and send the cookies using the cookie-related HTTP headers;
Create a separate non-Web backend endpoint that generates different token than either token used by the Web app and then allow for regular JWT authorization if the client is able to provide the mobile-only token.
Running Different Code On Different Platforms
Now, let’s see how we can run different code on different platforms in order to be able to compensate for the differences.
Creating A Flutter Plugin
Especially to solve the problem of storage, one way you can do that is with a plugin package: plugins provide a common Dart interface and can run different code on different platforms, including native platform-specific Kotlin/Java or Swift/Objective-C code. Developing packages and plugins is rather complex, but it’s explained in many places on the Web and elsewhere (for example in Flutter books), including the official Flutter documentation.
For mobile platforms, for instance, there already is a secure storage plugin, and that’s flutter_secure_storage, for which you can find an example of usage here, but that doesn’t work on the Web, for example.
On the other hand, for simple key-value storage that also works on the web, there’s a cross-platform Google-developed first-party plugin package called shared_preferences, which has a Web-specific component called shared_preferences_web which uses NSUserDefaults, SharedPreferences or localStorage depending on the platform.
TargetPlatform on Flutter
After importing package:flutter/foundation.dart, you can compare Theme.of(context).platform to the values:
TargetPlatform.android
TargetPlatform.iOS
TargetPlatform.linUX
TargetPlatform.windows
TargetPlatform.macOS
TargetPlatform.fuchsia
and write your functions so that, for each platform you want to support, they do the appropriate thing. This will come especially useful for the next example of platform difference, and that is differences in how widgets are displayed on different platforms.
For that use case, in particular, there is also a reasonably popular flutter_platform_widgets plugin, which simplifies the development of platform-aware widgets.
Example 2: Differences In How The Same Widget Is Displayed
You can’t just write cross-platform code and pretend a browser, a phone, a computer, and a smartwatch are the same thing — unless you want your Android and iOS app to be a WebView and your desktop app to be built with Electron. There are plenty of reasons not to do that, and it’s not the point of this piece to convince you to use frameworks like Flutter instead that keep your app native, with all the performance and user experience advantages that come with it, while allowing you to write code that is going to be the same for all platforms most of the time.
That requires care and attention, though, and at least a basic knowledge of the platforms you want to support, their actual native APIs, and all of that. React Native users need to pay even more attention to that because that framework uses the built-in OS widgets, so you actually need to pay even more attention to how the app looks by testing it extensively on both platforms, without being able to switch between iOS and Material widget on the fly like it’s possible with Flutter.
What Changes Without Your Request
There are some aspects of the UI of your app that are automatically changed when you switch platforms. This section also mentions what changes between Flutter and React Native in this respect.
Between Android And iOS (Flutter)
Flutter is capable of rendering Material widgets on iOS (and Cupertino (iOS-like) widgets on Android), but what it DOESN’T do is show exactly the same thing on Android and iOS: Material theming especially adapts to the conventions of each platform.
For instance, navigation animations and transitions and default fonts are different, but those don’t impact your app that much.
What may affect some of your choices when it comes to aesthetics or UX is the fact that some static elements also change. Specifically, some icons change between the two platforms, app bar titles are in the middle on iOS and on the left on Android (on the left of the available space in case there is a back button or the button to open a Drawer (explained here in the Material Design guidelines and also known as a hamburger menu). Here’s what a Material app with a Drawer looks like on Android:
Material app running on Android: the AppBar title is in the left side of the available space. (Large preview)
And what the same, very simple, Material app looks like on iOS:
Material app running on iOS: the AppBar title is in the middle. (Large preview)
Between Mobile and Web and With Screen Notches (Flutter)
On the Web there is a bit of a different situation, as mentioned also in this Smashing article about Responsive Web Development with Flutter: in particular, in addition to having to optimize for bigger screens and account for the way people expect to navigate through your site — which is the main focus of that article — you have to worry about the fact that sometimes widgets are placed outside of the browser window. Also, some phones have notches in the top part of their screen or other impediments to the correct viewing of your app because of some sort of obstruction.
Both of these problems can be avoided by wrapping your widgets in a SafeArea widget, which is a particular kind of padding widget which makes sure your widgets fall into a place where they can actually be displayed without anything impeding the users’ ability to see them, be it a hardware or software constraint.
In React Native
React Native requires much more attention and a much deeper knowledge of each platform, in addition to requiring you to run the iOS Simulator as well as the Android Emulator at the very least in order to be able to test your app on both platforms: it’s not the same and it converts its JavaScript UI elements to platform-specific widgets. In other words, your React Native apps will always look like iOS — with Cupertino UI elements as they are sometimes called — and your Android apps will always look like regular Material Design Android apps because it’s using the platform’s widgets.
The difference here is that Flutter renders its widgets with its own low-level rendering engine, which means you can test both app versions on one platform.
Getting Around That Issue
Unless you’re going for something very specific, your app is supposed to look different on different platforms otherwise some of your users will be unhappy.
Just like you shouldn’t simply ship a mobile app to the web (as I wrote in the aforementioned Smashing post), you shouldn’t ship an app full of Cupertino widgets to Android users, for example, because it’s going to be confusing for the most part. On the other hand, having the chance to actually run an app that has widgets that are meant for another platform allows you to test the app and show it to people in both versions without having to use two devices for that necessarily.
The Other Side: Using The Wrong Widgets For The Right Reasons
But that also means that you can do most of your Flutter development on a LinUX or Windows workstation without sacrificing the experience of your iOS users, and then just build the app for the other platform and not have to worry about thoroughly testing it.
Next Steps
Cross-platform frameworks are awesome, but they shift responsibility to you, the developer, to understand how each platform works and how to make sure your app adapts and is pleasant to use for your users. Other small things to consider may be, for example, using different descriptions for what might be in essence the same thing if there are different conventions on different platforms.
It’s great to not have to build the two (or more) apps separately using different languages, but you still need to keep in mind you are, in essence, building more than one app and that requires thinking about each of the apps you are building.
Further Resources
(ra, yk, il)
Website Design & SEO Delray Beach by DBL07.co
Delray Beach SEO
source http://www.scpie.org/solving-common-cross-platform-issues-when-working-with-flutter/
0 notes
rebecaguzman · 6 years
Photo
Tumblr media
How the modern era of the internet changes our habits of information consumption.
Statement: Are social media changing consumers of information into a generator of content, and this is creating individuals more or less informed as a result?
Intro
I. There used to be those days were we could just get informed in the mornings while eating breakfast or getting ready, thanks to the tv news or the newspaper seam somehow so far from our current reality, we would get inform just mornings and sometime over the night, and that was it, no more news during the day, except for some emergency or something really serious. But the past 10 years things started to change, social media came to our lives, including the smartphone, and suddenly from one day to another we started to get inform every single minute of our day, while walking, eating, waiting for the red line to turn green while driving, at every second of the day. Suddenly we realized we didn't need to pay anymore the subscription to the newspaper because we could read everything on our Facebook feed.
This new era of the internet changed everything, but one of the most affected industry was journalism. The purpose of this thesis is to analyse if social media is changing consumers of information into a generator of content and if this is creating individuals more or less informed as a result.
A. Social media and news consumption:
What happened over the past 10 years? How technology changed our habits of news consumption. (Traditional News Embracing Social Media)
1.(Scrolling News: The changing face of online news consumption. A report for Ofcom):
What this research shows is that, for people who access news online:
The primary device they are getting their news through is their smartphone.
The primary platform they are reaching most of their news through is social media.
The primary mindset with which they approach news is now passive.
These findings – not just how and why people access the news, but also how much this differs from what they think they are doing – have potentially huge implications for how news consumption is understood, and how it is measured in future.
The study was qualitative, examining the news behaviour, attitudes, and ‘online journeys’ of 22 individuals. In order to get the fullest picture possible, the things they said were compared with the things they could be seen to do in ‘real life’, using a variety of data collection techniques.
Respondents filled out a ‘media diary’, tracking the media they consumed over a week-long period, as well as capturing and uploading snapshots of their news intake and wider media behaviour through ‘selfie’ videos, screenshots, browser histories, and ‘screen record’ videos of their phone use. In-home ethnographic interviews were then carried out, exploring the context of news-seeking behaviour alongside attitudes towards the news landscape
In summary, the research found:
-When it comes to online news, what people say doesn’t always correlate with what they do: “nearly all respondents reported using a fairly even balance of online and ‘offline’ news media –significantly under-reporting their online news intake.” “These unconscious drivers were sometimes ‘post-rationalised’ with other self-described motivations for consuming the news, such as to keep in touch with the world, or to discuss with friends, family or colleagues.”
-Most online consumption is smartphone-led, driving passive consumption due to smartphone user interfaces: “The predominance of smartphone and social media-led news meant that, for these individuals, much of their news consumption was happening via platforms such as Google and Facebook, that are as yet largely unregulated.” “The design and functionality of content delivered via smartphones seemed to encourage passive news consumption, encouraging scrolling, swiping and watching behaviours rather than proactive searching and exploration.”
-The news feed interface is becoming ubiquitous, and keeps people ‘in-app’
-Most are aware of the potential problems with online news – but don’t act on this knowledge, or rely on superficial cues: “All respondents could recognise some or all of the current ‘buzzwords’ surrounding online news, such as fake news, algorithms and echo chambers.” “The majority of respondents were aware of the need to think critically, but did not put this into practice. Reasons included that it took too much effort, or that they believed they had an inherent ability to gauge the trustworthiness of the news they read.”
-Constant availability of ‘new’ news has driven greater changes in behaviour than ever before: “Many talked about feeling over-loaded, exhausted and desensitised by the amount of newsto process. Some had attempted news “detoxes” to reduce their intake, only to find themselves returning to previous levels of consumption because they feared they were missing out.”
-Social media blurs the boundaries between news and other content,impacting people’s ability to critically understand what they see: “
2. 74 social media statistics that will change your thinking (https://seotribunal.com/blog/74-social-media-statistics/?gclid=EAIaIQobChMIl5a36ZrD3gIVjs13Ch0USQoUEAAYASAAEgI6GfD_BwE )
3. Who gets their news from which social media sites? (https://www.wired.com/story/who-gets-news-from-social-media-sites/ )
4. News hasn’t changed – The way we consume it has ( https://www.business2community.com/social-media/social-media-changed-way-get-news-01541346 ):
These days my news comes in my Facebook News Feed, fine-tuned and tailored to exactly what I want to know. CNN, The New York Times, Bloomberg, TMZ, Mashable, Social Times all have a place in my News Feed. I get the exact news that I want to see without thumbing through pages and pages of newspaper. The best part is that it’s free.
I don’t even need to “thumb” through websites to find news, I only need to open up my Facebook or Twitter accounts and get my news delivered to me instantly. If I want to read more, the entire article is only a click away.
A new study, conducted by Pew Research Center, found that 63% of Facebook users now say that Facebook serves as a news source for events and issues. This is a 24% increase in just 3 years. (Pew Research Center)
B. Definition of Terms:
Citizen Journalism: Citizen Journalism is defined by a number of attributes that make it distinct from professional journalism, including unpaid work, absence of professional training, often unedited publication of content, and distinct story selection and news judgment (Lasica, 2003).
Traditional News: Traditional News refers to newspaper (print), network television news, cable television news, and radio.
Media ecology: the study of different personal and social environments created by the use of different communication technologies.
Changes in technology transform the social construct, which in turn shapes perceptions, experiences, attitudes, and behavior.
McLuhan, 2003
(People use their social networks and social networking technology to filter, assess, and react to news. Some 28% of Internet users have customized their home page to include news from their favorite source or topics and 40% of Internet users say an important feature of a news website to them is the ability to customize the news they get from the site
“Participatory News Consumer,” 2010)
Professional journalism: is defined by Kaufhold as news content produced by paid, trained, and supervised journalists delivered via media outlets, including newspapers, television, radio, and the Internet, who work within established editorial norms. (2010)
0 notes
bizmediaweb · 6 years
Text
How to Make a GIF: The Complete Guide
If you want to take your social media strategy to the next level and really say what you mean online, it’s essential that you know how to make a GIF. You can use GIFs to create eye-catching ads, or to connect with your followers through relatable moments from pop culture.
This article will show you how to make a GIF, and also explore the most effective ways to use them on social media and beyond.
What is a GIF?
How do you pronounce GIF?
How to make a GIF: the basics
How to make a GIF with Photoshop
How to make a GIF without Photoshop
How to make a GIF on mobile
How to create screen-recording GIFs
Tips for using GIFs on social media
Bonus: Download a free cheat sheet to quickly find the best image sizes for every social network and learn how you can use Hootsuite to easily add them to any post.
What is a GIF?
The Graphics Interchange Format, or GIF, chains together multiple bitmap (BMP) files into a single animated image. Each pixel within a GIF can be one of 256 colors, which is why GIFs generally look low-res compared to other videos we see online. GIF have lower frame rates, too, which works to their advantage. More frames equal bigger files, and GIFs need to stay small and shareable.
You could think of GIFs as the midpoint between images and videos. The main advantage of using GIFs is that you can tell a story quickly, and it doesn’t take much bandwidth to load them—making them perfect for mobile.
If you’ve ever thought GIFs seem a little primitive, well, that’s because they are: the animated GIF has existed in its current state for 30 years, predating the Internet itself!
GIFs have exploded in popularity in recent years. GIPHY, one of the web’s more popular GIF databases, claims to have over 300 million daily active users. Last month, Google acquired Tenor, a keyboard app and GIF archive designed to help iOS, Android and desktop users find the GIFs they want quickly. Tenor processes over 400 million GIF searches per day.
How do you pronounce GIF?
GIF was 2012’s Word of the Year, and even though we engage with GIFs every day, we can’t seem to agree on their pronunciation. Is the G soft (like gin) or hard (like giggle)?
In my humble opinion, it’s “GIF”, not “JIF.” Remember, GIF stands for Graphic Interchange Format: that’s graphic, not jraphic.
I’m willing to die on this hill, but you don’t have to agree with me.
Steve Wilhite, grandfather of GIFs, initiated a storm of Internet discussion when he accepted a Lifetime Achievement Award at the Webby’s in 2013. His five-word speech expressed solidarity with the soft G camp, proclaiming, “It’s pronounced ‘JIF’ not ‘GIF!”
Cue side-eyes from half of the Internet.
Ultimately, there’s no right way to say GIF. Even the Oxford English Dictionary has remained neutral on the issue. The debate will probably rage on until we invent a new file type to express our feelings online.
Even if you can’t decide how to say it, it’s still fundamental that you learn how to make a GIF. Let’s check out the basic steps, then explore some tools to help you make GIFs in a jiffy.
How to make a GIF: the basics
If you’re looking to make a GIF quickly, the best approach is using a GIF conversion site like GIPHY, Make A Gif, or Gifs.com. These platforms all function slightly differently, but the following steps will give you a rough idea of what to expect when you’re using them to make a GIF for the first time.
1. Choose the video you’d like to make into a GIF
The best GIFs target relatable moments that apply to specific feelings or situations. Pick something that will resonate with your target audience. For example, in my article about YouTube ads, I used a GIF of someone angrily smashing their computer with a hammer. If you’ve ever had your solo kitchen dance party interrupted by an unskippable ad, you can probably relate.
Find a video that captures your moment. You can use one you’ve saved to your computer or mobile device, or search online: YouTube and Vimeo are widely-used resources for clips.
2. Upload the video for conversion
If you’re uploading your own video, select that option within the converter you’ve chosen, and upload the video. If you’re using a video hosted on YouTube or Vimeo, paste the complete URL into the converter’s URL field.
3. Establish the length of your GIF
When you’ve uploaded your video file, isolate the moment you’d like to capture by bookending it with timestamps. GIFs support up to 3 minutes of footage, but two to six seconds is more than ideal.
4. Optional step: add text
GIFs don’t include sound, so you can add text for extra direction or meaning. Subtitles can provide context if you’re GIF-ing a quotable moment. Alternatively, you can use text to highlight a situation or feeling you’re hoping to express with the GIF (e.g., “Social media influencers be like…”).
5. Download your GIF
If you’re on desktop, you’ll notice that if you try to open the newly-downloaded GIF file it won’t be animated, and instead shows a series of frames. Don’t panic! Simply drag the GIF into your web browser and the animation will start looping. On mobile, GIFs play instantly when opened.
These are the basic steps of how to make a GIF, but there are actually several different approaches, especially if you want to use your own source material.
Let’s start with the most complicated option: how to make a GIF using Photoshop.
How to make a GIF with Photoshop
Note: all screenshots used in this article are from Adobe Photoshop CC 2018 (19.1.2 release).
In Photoshop, you can string together a collection of images into a GIF. To make the following GIF (which I’m probably a little too proud of…) I saved about 20 screenshots I’d taken in Photo Booth.
You can also use a short video file to make GIFs in Photoshop. The process is almost the same, except for the first step.
If you’re starting with a photo series, begin at step 1A.
If you’re converting a video into a GIF using Photoshop, start at step 1B.
1A. Load your deck of photos into Photoshop
In Photoshop, go to File > Stack > Load Files into Stack. Click Browse, then select the range of photos (“layers”) you’d like to make up your GIF by shift-clicking on the full list.
The “Load Layers” screen should look like this one below. Click OK and head to step 2!
1B. Load your video file into Photoshop
To turn a short video into a GIF using Photoshop, you’ll need to make layers out of the existing video frames. First, click File > Import > Video Frames to Layers…
A new window will pop up asking which portion of the video you’d like to import. It isn’t necessary to import every single frame to make a GIF. In this case, I imported every 3 frames, and only half of my video footage. When you’re satisfied, click OK.
Once you’ve imported your video file into layers, skip to Step 4.
2. Create a Timeline for your GIF
Under the “Window” menu, scroll down and click Timeline.
A small box will appear under the first image in your list: Create Video Timeline. Click this and change it to Create Frame Animation.
3. Convert your photo layers into a set of looping animation frames
In the top right of the “Timeline” panel you’ll see a little hamburger menu (outlined in yellow).
Click on the hamburger menu, scroll down, and click on Make Frames From Layers.
The “Timeline” panel will now show your animation frames in sequence. You can drag these around to reorder them (I named my files in sequence to skip this step).
Press the triangular Play icon (outlined in red below) to get an idea of how your GIF will look. Also, make sure Forever is selected in the drop down menu to the left (outlined in yellow), otherwise your GIF will only loop a set number of times.
4. Export your GIF Click File > Export > Save for Web (Legacy)…
You’ll come to this menu below. It looks a little overwhelming, but don’t worry. Under the “Preset” menu, select GIF 128 Dithered.
Next, change your Colors setting to 256 (the max number for a GIF).
Now you’re ready to export your GIF. To see how it turned out, press Preview… in the bottom left corner. It’ll open your default web browser and play a looping preview of your GIF.
Next, click Save… to name your GIF file, and download the GIF to your computer.
And that’s it! Congratulations! You know how to make a GIF in Photoshop.
How to make a GIF without Photoshop,
If you don’t have access to an Adobe Creative Suite subscription, don’t despair: there’s more than one way to GIF a cat.
Make your own GIF from a YouTube video
1. Head to GIPHY.com and click Create
2. Add the URL of the video you’d like to make into a GIF
3. Find the moment you’d like to capture, and establish your GIF’s duration
4. Optional step: decorate your GIF
There are a variety of options in here. You can add text (GIPHY has several different typefaces and colors to choose from), or jazz up the GIF with stickers, filters, or even hand-drawn annotations. I didn’t add anything because I didn’t want to distract from AyaBambi’s sweet dance moves.
5. Optional step: add hashtags to your GIF
Add hashtags if you want people to find your GIF and share it widely. Include your brand name and some common related terms in your list so it’s easily searchable.
6. Upload your GIF to GIPHY
And with that, you’re done! To include the GIF in your social media posts, simply insert the Giphy link or download the Giphy file and attach it (the method required will vary depending on the platform, but more on that below).
PS: You can follow these same steps to upload a GIF you’ve made previously. Just add a link to the GIF URL in place of the YouTube video link at the start.
How to make a GIF on mobile
Mobile apps like GIPHY Cam allow you to make GIFs on your phone. These are extremely easy to use: if you’ve ever used Snapchat, you can handle GIPHY Cam.
1. Launch the app and record your GIF
Tap the photo button to take a short burst of photos, or hold it for a longer GIF.
2. Optional step: choose a filter, or add stickers/text
3. Save your GIF and share it with the world
How to create screen-recording GIFs
Apps like GIPHY Capture, ScreenToGif, LICECap and GifCam allow you to make GIFs of your on-screen activity. This is a great option if you’re writing a short instructional article (like something for an online help center) and want to show steps visually.
1. Launch the screen-recording GIF software
When you launch the software, you’ll see a recording overlay like the red-outlined section in the screenshot below.
2. Pull the mask over the area you want to record
With GIPHY Capture, you can record anything within the recording overlay (again, outlined in red). To enlarge this area, click and drag the bottom-right corner (outlined in yellow).
Bonus: Download a free cheat sheet to quickly find the best image sizes for every social network and learn how you can use Hootsuite to easily add them to any post.
Get the free guide right now!
3. Record your on-screen activity
Press the circular red button in the center to record, then press it again to stop recording. You should see a thumbnail preview of your GIF pop up in the bar below the recording overlay.
4. Customize your GIF settings
Minimize the recording overlay and take a look at the GIF options menu. Here you can customize various aspects of your GIF, including the loop type—normal, reverse, or ping-pong—pixel size, and frame rate. Drag the tabs in from the left or right to trim your GIF. You can also add captions from this menu.
When you’re ready, you can click the blue “Calculate size” text to get an idea of how big your GIF file will be. I reduced the quality of my GIF when I realized it was going to be over 8 MB (under 3 MB is ideal).
5. Save your GIF
You can choose to save your GIF to your computer, or, in the case of GIPHY Capture, upload it straight to GIPHY’s online archive.
Tips for using GIFs on social media
The best social media platforms to use GIFs on are Facebook and Twitter—as of April 2018, Instagram only supports GIFs uploaded as video files.
Sharing a GIF on Facebook
Sharing a GIF on Facebook is easy: simply copy and paste the link to your GIF, wait for the preview to appear, and you’re golden. For best results, Facebook recommends:
High quality animations
Links ending with .gif
GIFs with a file size less than 8 MB
GIFs with less than 20 percent text on the image
Avoiding flashy, excessively grainy GIFs (stay compliant with their advertising rules)
Sharing a GIF on Twitter
Here’s how to share a GIF on Twitter:
1. Type your Tweet into the text field (or a GIF URL), or click the Tweet button. 2. Click the camera icon and upload a GIF from your computer. OR Choose a GIF from Twitter’s built-in GIF search library, and click the GIF icon. (Note: you’re limited to one GIF per Tweet) 3. Once you’ve selected your GIF, you’ll see it attach to your Tweet. 4. Click “Tweet” to post.
Now that you know how to share GIFs on Facebook and Twitter, here’s a few different approaches to incorporating them into your social media strategy.
1. Engage your audience
Remember, social media strategy isn’t all about conversions and sales. A huge part of the fun of social media is finding GIFs and sharing them with friends.
Humor is one of the most powerful ways to connect with your audience and keep them engaged. Pick GIFs that will resonate with your audience and make them feel personally connected to your brand.
And remember…
You don’t need to smother your GIFs in branding—it’ll just end up alienating your customers. Make sure your cultural references on social media are current, or have a timeless quality. You don’t want to look out of touch.
2. Enhance your how-to guides
GIFs are great for adding a visual dimension to instructions. InStyle’s 18 Ways to Wear a Scarf is an awesome example of the power of instructional GIFs. The GIFs in this article work so well because they show you what to do and what the end result looks like—all in less than five seconds!
The Huffington Post recently published a huge directory of exercise-related GIFs for the gym-shy among us. Each GIF shows a short loop of an exercise technique using the proper form. This saves you the hassle of clicking back and forth through YouTube videos (or dragging yourself to a personal trainer).
3. Promote your products
The shareable nature of GIFs—and their potential to go viral—mean they’re a powerful medium for advertising.
Last year, Converse and ad agency Big Spaceship partnered up for a back-to-school marketing campaign starring Millie Bobby Brown. The “First Day Feels” campaign included 32 reaction GIFs from the Stranger Things actress; they were wildly successful, generating over 276MM views and 11.5k shares between GIPHY and Tenor, and firmly establishing Converse as the back-to-school shoes brand of choice for tweens and teenagers.
4. Strengthen your visual branding
GIFs are definitely more stimulating than a static image, provided they’re used sparingly—it’s easy to go overboard and descend into a 1990s GeoCities nightmare (unless that’s what you’re going for). You can avoid this by choosing GIFs with muted colors and tones that don’t disrupt the browsing experience—like this cool, understated GIF from Nike.
You could also do the opposite and make an eye-catching GIF that’s totally extra.
Blackbox, a shipping company founded by the creators of Cards Against Humanity, recently added this insane GIF by pixel artist Paul Robertson to their website’s front page.
This overstimulating GIF celebrates what Blackbox is all about: shipping products from indie artists around the world, and having fun doing it. Robertson’s GIF was extremely well-received on Twitter, with over 850 retweets and 2,500 likes!
5. Make your data more visual
GIFs are also a good way to add dynamic elements to graphs and flowcharts. This makes them more visually interesting, showcasing the progression and aggregation of data, bringing it to life. I really liked this example from info we trust. that maps out the seasonal growth of 212 flowers in Jefferson’s Monticello garden.
This is a complex example, but there are simpler ways to visualize your data using GIFs. Last year, Google launched Data GIF Maker. All you need to do is plug in your numbers, and Google takes care of the rest!
However you choose to use GIFs in your marketing strategy—social or otherwise—make sure your approach is carefully considered and stays true to your brand values. And don’t forget to have fun with it!
You can add your newly created, hilarious GIFs to social media posts with Hootsuite. Easily manage your social channels and engage followers across networks from a single dashboard. Try it free today.
Get Started
The post How to Make a GIF: The Complete Guide appeared first on Hootsuite Social Media Management.
How to Make a GIF: The Complete Guide published first on https://themarketingheaven.tumblr.com/
0 notes