February 3, 2022Comments are off for this post.

Create and publish Angular packages in your GitHub repository

The use of packaging is common in Open Source projects through NPM, but there is also the possibility of publishing your own private packages so that they can be consumed by your applications without exposing them to all the world. We are used to working in closed and monorepo projects (or at least learning languages ​​and frameworks under this operating mode), but it is increasingly common to divide the functionalities of a project by scope into packages, especially in relation to systems development design and components.

In this article we will delve into publishing packages from Angular using GitHub Packages.


Let’s imagine that we are developing a design system or a component library in Angular and we want to use it in several projects. The initial idea is to create a project in Angular, develop the components, do a build and publish it in NPM. This has multiple drawbacks and several limitations:

  • You are exposing the complete code of the project
  • You are publishing an application made up of components, not the components themselves, with the derived performance problems.
  • NPM is a public package repository, so everyone would have access to that package.

To avoid these problems we can make use of two tools from Angular and GitHub: Angular Libraries and Github Packages.

Read more

October 30, 2020Comments are off for this post.

UCD is an Iterative Process

In user-centered design, designers use a mixture of investigative methods and tools (e.g., surveys and interviews) and generative ones (e.g., brainstorming) to develop an understanding of user needs.

Generally, each iteration of the UCD approach involves four distinct phases. First, as designers working in teams, we try to understand the context in which users may use a system. Then, we identify and specify the users’ requirements. A design phase follows, in which the design team develops solutions. The team then proceeds to an evaluation phase. Here, you assess the outcomes of the evaluation against the users’ context and requirements, to check how well a design is performing. More specifically, you see how close it is to a level that matches the users’ specific context and satisfies all of their relevant needs. From here, your team makes further iterations of these four phases, and you continue until the evaluation results are satisfactory.

September 29, 2020Comments are off for this post.

User feedback survey questions

Online surveys are a quick and incredibly useful tool for gathering all sorts of user feedback. In next to no time you can whip something up using one of the many online survey tools out there (I particularly recommend SurveyGizmo) and start gathering feedback from real users. Often implementing the survey is the easy bit, it’s designing the thing that’s the tricky part as you won’t get the feedback you’re after if you don’t ask the right questions. In this article I outline 15 useful user feedback questions for online surveys for you to pick and choose from.

Read more

March 26, 2020Comments are off for this post.

Anyone interested to team-up?

Technology SWAT Teams to Support New York COVID-19 Response

Welcome to the State of New YorkWelcome to the State of New York
New York State COVID-19 Technology SWAT Team

March 12, 2020Comments are off for this post.

Iterative Design

Rather than attempting to eliminate error cases, use your iterative design process to understand failure modes and design for them. You should seek to understand failure cases in two ways. First, to identify whether an ‘escalation’ or executive judgment is required. In certain cases such as fraud detection, a user that attempts to correct an erroneous fraud label needs a streamlined way to do so, as these exceptional cases can be highly stressful! Second, you can use iterative design to better understand your own criterion of success. Many problems don’t have a binary true-false answer. Sometimes, in cases such as recommendation, quality follows a gradient from terrible to excellent.

March 10, 2020Comments are off for this post.

What is a Design Language?

A design language is a standard way to communicate a set of concepts so that people don’t have to re-learn things over and over. They make roads easier to drive on, kitchen utensils easier to use, and technology more intuitive. Every time you tap on a button on a website and see the button change color to signal that you ‘clicked’ it, you’re interfacing with a design language. Design can bring clarity, intuition, and usability to these kinds of experiences. But more importantly, design is a lens with which we should make change in the world.

June 16, 2019Comments are off for this post.

Principles of Typography

Angular Size

Like many things in UI design, something that appears random and subjective (like font sizes) is actually depending on remarkably sensible principle: we like to read paragraphs whose letters are about the same subjective size – namely, something like 0.3° tall, from baseline to cap height, in our field of vision.

angular size of text on different devices

First, why are we measuring font sizes in degrees? Frankly, it’s the most sensible way to do it when comparing across devices. What else you got – inches? If you talk about trying to make your type half an inch tall, well, great, but half an inch text is crazy big on a phone (one foot from your face), and pretty small on a TV screen (10 feet from your face). The simple truth is: when a font is twice as far away, it needs to be twice as big to compensate.

Now this is great in theory, but in practice, it’s incredibly arduous to calculate:

  • Not everyone views their phone or monitor from the same distance
  • Not all devices have the same size pixels
  • Not all fonts are the same readability – even at the same font size, pixel-density, and viewing distance!

So while you will probably never be calculating this out by hand, I think there are two general lessons that are worth bearing in mind.

The 1/16” Rule

Across a wide variety of viewing distances, you can size your body text according to the following formula:

Font size (in inches) = 1/16" x (the number of feet between the user’s eyeballs and the device)*

*Measuring baseline to cap height, and presuming a fairly readable body font

I don’t expect you to whip out a ruler the next time you make an Android app, but this could come in handy when you take your digital design knowledge to a medium you’ve never worked with: presentation posters, TV apps, slideshows for viewing in an auditorium hall, etc.

The Pixel Density-Viewing Distance Offset

In general, smaller devices have smaller pixels*.

*By “pixel”, I mean not physical pixels, but the concept alternatively referred to as “CSS pixels” (web), “density-indepent pixels” (Android), or “points” (iOS) – in-depth explanation here.

That means smaller devices have more pixels per inch. And that means the same font size appears physically smaller on phones than tablets, and physically smaller on tablets than desktops (and so on for TVs as well, by the way).

pixel density comparison across different devices

That’s not the end of the world, since we hold phones closer to our face. But if the average phone is twice as close to our eyeballs as the average desktop, is the pixel density decrease enough on desktop to make the desktop font twice as big? Short answer: no. Longer answer: as of writing, the typical desktop now has about 33% smaller pixels than your typical mobile device. This means that it’s not stupid to make any desktop text about 33% larger than its mobile equivalent, at least on a page optimized for long form reading.

March 13, 2019Comments are off for this post.

iPhone Typography Guidelines

Here’s a quick summary of styles. See below for visual reference and more in-depth guidelines.

Element Sizing Notes
Page titles,
Modal titles
17pt Medium font weight
iOS 10+ page titles are 34pt before scrolling, 17pt once scrolled
Paragraph text,
Secondary text 15pt Lighter color as well
Tertiary text,
Segmented buttons
13pt Skip a font size between secondary and tertiary text
Text inputs
17pt Highlight important buttons with medium font weight
Action Bar 10pt Don't go smaller than this


Let’s break this down element-by-element and look at illustrated examples. We’ll cover not just the actual font sizes, but also how Apple thinks about text styles.

Read more

February 5, 2018Comments are off for this post.

The sizes for custom navigation bar icons

The sizes for custom navigation bar icons are listed in the iOS Human Interface Guidelines here: iOS Human Interface Guidelines — Custom Icons

The sizes are listed as:
iPad Pro, iPad, iPad mini About 44px by 44px
iPhone 6,7,8s, iPhone 6, iPhone SE About 44px by 44px
iPhone 6,7,8s Plus, iPhone 6 Plus About 66px by 66px

The difference is because the iPhone 6,7,8[s] Plus uses the @3x resources while the others use the @2x images. So your @2x and @3x sizes are correct, your @1x image should however be half the size of your @2x image.

October 14, 2017Comments are off for this post.

Choosing between a native, hybrid, or web app for mobile devices

Apple and Android dominate the smartphone market, owning over 90 percent of the industry.

To take advantage of this fact, many companies that already have an app based on one platform look to make it work across both Apple and Android devices. But this isn't as easy as it sounds, and taking shortcuts to do so can have serious consequences.

Read more