2 puntos por GN⁺ 2024-01-06 | 1 comentarios | Compartir por WhatsApp
  • BoopSnoop es una app de mensajería ultrsimple hecha para que la usara una familia de cuatro personas; tras lanzarse en la primera semana de enero de 2020, la descargaron cuatro personas en tres zonas horarias y desde entonces mantuvo 4 usuarios activos diarios y una tasa de abandono de 0
  • Tras el cierre de Tapstack, en vez de usar grupos de Instagram o WhatsApp, hicieron una app solo para la familia y mantuvieron una estructura donde los mensajes de fotos y videos se muestran en pantalla completa y luego desaparecen
  • Está compuesta solo por una pantalla de cámara, una insignia de mensajes en espera, AWS S3, AWS Lambda y distribución por TestFlight; al no necesitar inicio de sesión ni gestión de contactos, se volvió aún más simple como software situado
  • Hacerla tomó alrededor de 1 semana, y cerca de la mitad de ese tiempo se fue en problemas de firma de código y aprovisionamiento en Xcode, pero los componentes de código abierto y el código de ejemplo hicieron posible la implementación
  • Aunque no sea software profesional ni escalable, una app hecha para personas cercanas puede convertirse en un software hogareño, que solo cambia cuando sus usuarios quieren cambiarlo, sin rediseños repentinos, anuncios ni pivotes

El canal familiar que dejó Tapstack

  • Tapstack era una app que mostraba una cuadrícula de caras de personas o grupos debajo de la vista en tiempo real de la cámara del teléfono
    • Al tocar, tomaba una foto; al mantener presionado, grababa un video
    • El mensaje se enviaba en cuanto se levantaba el dedo, sin etapa de edición ni revisión
    • Los mensajes recibidos se acumulaban en un “stack” y desaparecían después de que el usuario los revisaba
  • La cuadrícula familiar de Tapstack estaba compuesta por cuatro espacios: mamá, papá, la hermana menor y un grupo que reunía a los tres
  • La ventaja de esta app no estaba en la comunicación práctica ni en coordinar horarios, sino en la presencia ambiental
    • Como no había hilos ni historial, había menos presión de sentir que se esperaba una respuesta
    • Una selfie con café, la foto de un estanque congelado o videos juguetones de los sobrinos eran formas de transmitir la sensación de “estoy pensando en ti”
  • No parecía que Tapstack hubiera conseguido una gran cantidad de usuarios, no tenía publicidad y no pedía pagos a sus usuarios
  • Tras detenerse las actualizaciones en 2019, anunció su cierre en otoño, ofreció a los usuarios una forma de exportar sus datos y luego bajó la persiana

BoopSnoop, la app alternativa para la familia

  • Después del cierre de Tapstack, la familia necesitaba una alternativa, pero los grupos de Instagram o WhatsApp hacían sentir que ese canal familiar cálido estaba rodeado de otras cosas
  • BoopSnoop es una app tipo ventana mágica hecha solo para la familia
    • Captura fotos y videos y se los entrega a la familia
    • Los mensajes esperan en una cola y desaparecen al ser vistos
    • La pantalla de visualización siempre es de pantalla completa y no tiene elementos que impulsen comentarios o compartidos
  • Casi no hay interfaz
    • Hay un botón de cámara
    • Una discreta insignia verde en la esquina muestra cuántos mensajes están esperando
  • Se lanzó en la primera semana de enero de 2020 y la descargaron cuatro personas en tres zonas horarias
  • Desde entonces mantuvo 4 usuarios activos diarios y una tasa de abandono de 0, convirtiéndose en un éxito que superó todas las expectativas de su creador

La implementación que hizo posible la simplicidad

  • BoopSnoop fue diseñada para ser todavía más simple que Tapstack
    • No necesita sistema de inicio de sesión
    • No necesita interfaz para crear ni gestionar contactos
    • Ya sabe exactamente quién la usa
  • Como en el concepto de software situado de Clay Shirky, no es un software que requiera personalización, sino uno que es personal desde el principio
  • El núcleo es una pantalla de cámara para capturar fotos y videos
    • Usa una interacción familiar: tocar para tomar una foto y mantener presionado para grabar un video
    • Para esta parte usa el componente de código abierto SwiftyCam
    • Sin ese componente, el proyecto habría sido difícil
  • El backend es mínimo
    • Un bucket de AWS S3 guarda las fotos y los videos
    • Unas cuantas funciones de AWS Lambda realizan el procesamiento necesario cuando se suben mensajes nuevos
  • La distribución para la familia se hace por TestFlight, y la app sigue siendo una “beta eterna y acogedora”

Con qué se toparon en el desarrollo real

  • En un mundo mejor, habría sido una app que podría hacerse en un día con una herramienta moderna y flexible tipo HyperCard para iOS
  • En la práctica, tomó cerca de una semana, y alrededor de la mitad de ese tiempo se fue en lidiar con problemas de firma de código y aprovisionamiento de ID
  • Aun así, los componentes de código abierto y el código de ejemplo hicieron posible el proyecto, y el mundo actual no estaba completamente roto
  • Programar en el siglo XXI puede dar la sensación de armar cosas como Lego cuando se trabaja dentro de las fronteras de la tecnología más reciente
  • Publicar el código podría servir de guía para otras personas, pero el código de la app mezcla muchos valores específicos de la app y claves de autenticación
    • Esta app no es un framework ni una plantilla, sino la app misma
    • Esa naturaleza no puede separarse del espíritu con el que fue creada

Programación como “comida casera”

  • El creador se ve a sí mismo no tanto como un ingeniero de software profesional, sino como un programador equivalente a un cocinero casero
  • “Aprende a programar” suele estar ligado al valor de mercado, el apalancamiento económico, el cambio de carrera y el currículum
  • “Aprende a cocinar” no existe solo para convertirse en chef
    • Se puede aprender para comer mejor
    • Se puede aprender para comer más barato
    • Se puede aprender para continuar una tradición
    • También se puede aprender por aburrimiento o porque uno quiere pasar tiempo con quien enseña
  • Cocinar se conecta con el hogar, la curiosidad, la historia, la cultura, el cuidado y el amor, más allá del ámbito de comprar y vender
  • En el siglo XXI, muchas personas queridas esperan dentro de los computadores de bolsillo que siempre llevamos cerca, así que programar también puede conectarse de esa manera
  • Cuando la programación se libera de las exigencias de profesionalismo y escalabilidad, se convierte en otra actividad
    • Así como cocinar en casa es distinto de cocinar en una cocina comercial, hacer una app para la familia también da otro tipo de recompensa
    • BoopSnoop no cambia a menos que la familia quiera que cambie
    • No hay rediseños repentinos, avalanchas de anuncios ni pivotes para perseguir una base de usuarios incomprensible
    • Incluso si algún día desaparece, será una decisión de la familia

Una app que siguió usándose años después

  • Según una actualización de febrero de 2022, la familia seguía usando BoopSnoop todos los días dos años después, y a pedido de la mamá se añadió una función
  • En febrero de 2023 también seguía usándose a diario
  • En febrero de 2024 seguía en uso, y el build de TestFlight era el 26
  • En febrero de 2025 no se había cambiado literalmente nada en la app, y el build de TestFlight era el 30

1 comentarios

 
GN⁺ 2024-01-06
Opiniones de Hacker News
  • Esto parece poesía. Durante los últimos 10 años he creado proyectos personales y reemplacé todas las apps que uso a diario, como el correo y el calendario que usaba antes.
    Cada vez que alguien me ve usarlas pregunta: “Guau, qué genial, ¿cómo la descargo?”, pero la respuesta siempre es la misma: no se puede.
    Hay belleza en diseñar algo solo para uno mismo, y estoy 100% seguro de que este proyecto protege mi bienestar mental.
    Es una fuente de esperanza y felicidad para el futuro que ninguna empresa ni salario puede darme, y mi propia carta comodín frente al mundo.

    • Yo, de forma parecida, estoy creando otra app de notas solo para mi propio uso.
      Con una herramienta que uno mismo hizo, desde el primer día te conviertes en el mayor experto del mundo en esa herramienta, y eso pesa más de lo que parece. ¿De cuántos programas puedes decir que conoces el 100% de sus funciones, atajos y funcionamiento interno?
      Si se trata de una herramienta de trabajo o productividad, esta “maestría total” puede volverte increíblemente eficiente; y si la usas a diario y retroalimentas pequeñas correcciones y optimizaciones, la herramienta crece contigo.
      Mi app de notas ahora se encarga de mi base de conocimiento personal, gestión de proyectos, lista de tareas, planificación diaria e incluso diario personal; y como solo tiene las funciones que necesito, es ligera y rápida.
      En conclusión, creo que todos deberíamos experimentar más con crear nuestras propias herramientas.
    • Me gustaría que más gente publicara este tipo de cosas como open source, pero con los pull requests y los issues desactivados.
      Es una forma de dejar clara la expectativa de que otros pueden usarlo, aprender y construir sobre eso, pero que no se busca feedback ni contribuciones.
    • Me pregunto si podría explicar cómo funciona o grabar un video de cómo lo usa.
      Aunque quizá eso contradiga la última frase de “mi propia carta comodín”.
      Me da la impresión de que integró las apps entre sí, por ejemplo creando eventos a partir de mensajes de texto y reenviando correos a contactos de Signal.
      Yo automatizo rápido tareas repetitivas con scripts, pero no he integrado todos los scripts en uno solo. Al mantenerlos separados, la carga de mantenimiento baja, así que no sé si tomaría ese camino.
    • Principalmente escribo programas para mí, pero por lo general los publico para que otras personas también puedan usarlos si les sirven, arreglarlos, usar partes del código, criticarlos o hacer copias de respaldo.
      Si alguien escribe algo molesto al respecto, simplemente puedo ignorarlo, y eso no afecta la forma en que yo lo uso.
      Si no quieres recibir críticas, parches ni reportes de bugs, también puedes publicar solo los archivos en un lugar como GitHub, sin issues, pull requests ni espacios de discusión.
    • Yo, con mucho menos esfuerzo, configuré neomutt para crear la experiencia de usuario de cliente de correo más hermosa y rápida, y lo uso tanto para trabajo como para uso personal.
      Quienes lo vieron quedaron impresionados y algunos me pidieron la configuración, pero no creo que nadie se haya acostumbrado realmente a usarla.
  • Buen artículo. Me recordó a una app para macOS que hice hace unos años para mi esposa.
    Rastreaba los horarios de atención de sus tiendas favoritas y, al hacer clic en el ícono de la barra de menús, mostraba cuánto faltaba para que cerrara cada tienda ese día.
    También indicaba si era una hora concurrida, adaptándose a su preferencia de ir cuando hay menos gente.
    Era una app en Qt simple que guardaba los datos en un archivo de texto, y cuando le pregunté qué nombre ponerle, dijo “Gladiolus, como nombre de flor”, así que así la llamé.
    Como programador, nunca tuve un cliente más agradecido que la única usuaria de Gladiolus.

    • ¿Y qué haces cuando cambian los horarios de atención de una tienda?
  • Me pegó mucho la parte de pelearse con la firma de código y el aprovisionamiento de identidad de Xcode, encender incienso y lanzar piedras hasta que los dioses de Xcode concedieron el paso.
    Es una gran fricción que aparece en el desarrollo de software moderno cuando uno intenta resolver directamente sus propias molestias.
    No es pensamiento de ingeniería, de entender principios de computación y combinar componentes de forma razonable para crear algo nuevo, sino repetir conjuros encontrados en Google y golpearse la cabeza contra la pared hasta que en algún momento funciona.

    • Lo principal que le pido a una plataforma es que no necesite permiso de terceros para desarrollar e instalar el programa que quiera.
      Con ese criterio, Apple y Microsoft quedan prácticamente descartadas.
    • Uno termina repitiendo conjuros encontrados en Google con la esperanza de no romper algo todavía peor.
      Que Apple haya creado en Xcode un botón tipo “sí, háganlo fácil” para manejar perfiles, firma de claves y demás fue una mejora, pero a veces olvida configuraciones al azar o se rompe, y hay que volver a rastrear el problema.
    • La experiencia de desarrollador de Apple con firmas, certificados y perfiles es sorprendentemente horrible.
    • En esta situación, la combinación de un servidor web en Raspberry Pi y Cloudflare Tunnel realmente brilla.
      No necesitas permiso de nadie para ejecutar ese servicio. Tengo una app personalizada de tareas corriendo en la Pi sin exponer el router, y se siente tremendamente liberador.
  • Cuando este artículo apareció por primera vez en HN hace tiempo, me impactó mucho y me ayudó a poner en palabras algo que ya venía haciendo inconscientemente.
    Hace unos años, como mucha gente, empecé un homelab, y poco a poco se convirtió en el hobby de crear y alojar yo mismo apps para familiares y entre 5 y 15 amigos cercanos.
    Hice muchas apps pequeñas, como una para coordinar noches de película, e integraciones con chats grupales, y gracias a eso todos terminaron hablando y juntándose con mucha más frecuencia.
    Incluso grupos de amigos lejanos que no se conocían entre sí ahora se reúnen directamente sin mí para ir a baby showers o bodas.
    Si tienes un grupo de amigos así, estaría bueno que construyeras algo para ellos.

    • Me gusta crear herramientas pequeñas, pero suelo hacerlas para otras personas más que para mí.
      Mi novia y su hermana llevaban una contabilidad de lo que se debían entre ellas, pero siempre les costaba cuadrar quién debía qué y cuándo.
      Así que hice una “app” en forma de hoja de cálculo inteligente compartida en Google Docs, donde al ingresar la información de cada mes calculaba quién debía pagar cuánto.
      Después de olvidarme de eso por más de un año, pregunté si todavía la usaban y me dijeron: “La usamos siempre, de verdad nos salvaste la vida”.
      En realidad no era más que un uso normal de una hoja de cálculo, pero personas capaces y con altos ingresos estaban teniendo dificultades incluso con una liquidación simple.
      Les gustó especialmente que en cada pestaña mensual nueva cargara una foto del perro que crían juntas. Una herramienta tonta que tomó 15 minutos lleva años siendo querida.
      Es bueno crear herramientas pequeñas para grupos pequeños de personas.
    • Irónicamente, este enfoque también es una buena forma de crear un producto real, siempre que estés dispuesto a aceptar que crezca.
      Hace 3 años hice una app simple para que familiares y amigos compartieran recetas, y al seguir agregando funciones que me pedían, después de unos 2 años empezó a difundirse de boca en boca.
      En octubre creció tanto que tuve que empezar a cobrar a nuevos usuarios para cubrir los costos del servidor, y ahora estoy considerando un futuro en el que trabaje en ella a tiempo completo.
  • Al mismo tiempo, siento que la brecha entre este tipo de apps y las apps profesionales se está ampliando
    Usar apps se volvió más fácil, pero crear una app “real” para el público masivo se volvió más difícil
    Llevo más de 3 años escribiendo el libro https://opinionatedlaunch.com y tengo que seguir actualizando el capítulo de “móvil”. No por algún framework nuevo genial, sino porque Apple y Google siguen agregando requisitos
    Cosas como restricciones más estrictas al acceso al GPS pueden ser buenas, pero si no te mantienes al día, algún día te sacan la app de la plataforma. En ese sentido, no existe lo “terminado”
    Un programita escrito en Pascal en 1990 quizá todavía pueda distribuirse, pero no conozco el equivalente para una app móvil. Hablo de distribución, no de ejecución

    • Se me ocurrieron dos soluciones: distribuir con TestFlight y no hacer un lanzamiento real, o crear una app HTML que funcione bien en móviles y pueda usar caché offline
      Cada vez me inclino más por HTML
    • A mí también me pasó. Hace mucho hice una app de Android para una necesidad propia y quedó lista uno o dos meses después
      No había nada que cambiar y funcionaba exactamente como quería, pero en algún momento Google decidió que no cumplía con los estándares más recientes y que había que quitarla de la tienda
      No me estoy quejando, y todavía puedo instalarla con adb, pero otras personas ya no pueden obtenerla. Probablemente ahora sería difícil incluso compilar el binario
    • Por este tipo de preocupaciones empecé a mirar Nim
      Todavía no logré hacerlo funcionar, pero la idea es que, si limito la UI lo suficiente para que sea simple, el mismo código podría compilarse a Objective C para iStuff, C++ para Android y escritorio, y Javascript para la web
      Cada app podría evaluar nimscript arbitrario de una forma independiente de la plataforma
      Hace mucho olvidé qué app quería crear, pero si algún día lo recuerdo, espero que nadie pueda impedir que se ejecute en cualquier parte
    • Estoy totalmente de acuerdo en que Android y Apple son ecosistemas cerrados con reglas que cambian constantemente
      Dicho eso, me parece que la mayoría del software tampoco llega realmente a estar “terminado”
      Si no es una categoría completamente separada de la cultura popular, es difícil llamarlo funcionalmente completo. Quizá GNU units o grep puedan considerarse “terminados”, pero la mayoría de las apps tienen que cambiar junto con el mundo que las rodea
    • Depende de quién sea el usuario objetivo
      En mi campo, todas las herramientas de punta se usan desde scripts o desde una línea de comandos interactiva
      Si apuntas a ese tipo de interfaz, es mucho más rápido y fácil que crear una GUI con librerías modernas, y aun así puedes conseguir suficientes usuarios. Solo los usuarios de conda son unos 40 millones
  • Este artículo me cambió la forma de pensar sobre el sideloading en el iPhone
    Antes estaba del lado de “hay que cerrarlo para que la abuela no sea hackeada”, pero ahora veo que eso impide que la gente cree estas apps caseras
    También difunde la idea de que las computadoras son magia y que solo los magos deberían programarlas. Ningún desarrollador de software que haya conocido se sintió así, y yo tampoco

    • El valor predeterminado debería seguir siendo el modo abuela, pero estaría bien poder activar el sideloading mediante algún rito de iniciación enrevesado que solo haya que hacer una vez
      Ese proceso debería estar lleno de advertencias tipo “a partir de aquí hay dragones”. Básicamente, sería hacerlo más parecido a una Mac o a una Chromebook común
      ¿Los teléfonos Pixel todavía permiten rootear?
    • La única razón para cerrarlo es la comisión del 30% de la App Store
      Es más probable que la abuela pierda sus ahorros por una estafa tradicional de ingeniería social por teléfono fijo que por su celular
      Si a Apple realmente le importaran la seguridad y el spam más allá de ganar dinero con la App Store o con las reparaciones, al menos habría hecho algo con el spam de iMessage
    • Creo que la “beta externa” de TestFlight es una ruta realmente ingeniosa
      Si hubiera existido hace años una forma de que me trataran como una empresa para distribuir a amigos y familia, la habría usado; pero TestFlight es tan fácil y tiene un alcance tan grande que ahora ya no hay barrera
      Está la barrera del costo de comprar una Mac, pero si consideras el impuesto de tener que contar con una Mac de todos modos, no es tan alta
      Es cierto que las computadoras se perciben como magia, pero la distribución no es la causa. Me da pena que la gente no quiera hacer más cosas con las computadoras
      Antes mis padres usaban en una 386 cosas como apps de bases de datos muy básicas, pero en algún momento las máquinas se volvieron más grandes y aterradoras, y la gente se volvió menos curiosa
      Puede que sea por la edad, pero también puede ser porque construimos máquinas menos amables para aceptar código nuevo
    • Al contrario, creo que para evitar que la abuela sea estafada habría que permitir el sideloading
      Es solo una cuestión de quién comete la estafa. Un criminal puede sacarle mucho de una vez, pero las empresas de celulares operan en un frente mucho más amplio y con costos mucho mayores
  • La explicación del artículo, la idea de la app y la forma de implementarla se sienten frescas
    La idea de crear algo para un mercado total direccionable (TAM) de un solo dígito contrasta muy bien con la mayoría de las cosas
    Estas apps están un paso por encima de los proyectos de aprendizaje y tienen una utilidad enorme para una persona o unas pocas. Además, como esas pocas personas son las más importantes de tu vida, resultan mucho más satisfactorias
    La analogía de preparar comida casera para la familia es perfecta

    • El desarrollo centrado en TAM va en contra del espíritu de la era de las minicomputadoras
      En ese entonces se daba por sentado que la gente primero creaba aplicaciones para sí misma
  • Es una idea genial. Últimamente he estado pensando mucho en la “web a pequeña escala”, porque cada vez me cansa más la web a escala planetaria.
    Vivo en un pueblito de Canadá, así que solo me interesa mi pueblo, y me gustaría que hubiera algo a escala de pueblo que encajara perfectamente con él.
    Como la escala es pequeña, podría correr en un equipo guardado en el clóset de mi casa, y si se cae no habría una gran empresa detrás a la cual enojarse. Solo soy yo, y aquí la mayoría nos conocemos o al menos hemos oído hablar unos de otros.
    Si se cae un rato por un apagón, incluso eso sería local. Sobre todo porque los apagones son frecuentes durante las tormentas de nieve, y es muy probable que los usuarios también estén sufriendo el mismo apagón.
    Es solo idealismo y en la práctica lo más probable es que no lo construya, pero también pienso que al final la mayoría seguirá usando cosas como grupos de Facebook.

    • Coincido profundamente en que la web a escala planetaria cansa, pero siento que caíste en la trampa de “quiero construir algo; ¿qué podría construir?”.
      Básicamente no hay producto, solo mercado, así que puede que no tenga mucho sentido para nadie más que para ti.
      Claro que rascarte tu propia comezón, o construir algo solo por construir, también es totalmente válido, y eso también es software como comida casera.
    • Estoy tratando de subir a la mayor cantidad posible de conocidos a Meshtastic.
      Me gusta que sea hardware de 25 dólares, sin servidor central, sin necesidad de licencia de radioaficionado y con control desde el celular.
      Algún día me gustaría hacer un proyecto realmente genial que vaya más allá de las funciones básicas, pero todavía no sé qué debería ser.
  • Me reí en voz alta con la frase “encendí incienso y lancé piedras, y los dioses de Xcode permitieron que pasara”.
    Yo también he librado innumerables batallas contra esos dioses, y son monstruos.

    • El autor, Robin Sloan, es un escritor que ha publicado varias novelas, muchos cuentos y un excelente newsletter casi mensual.
      Si te gustó esa frase, recomiendo muchísimo leer su primera novela, Mr Penumbra's 24 Hour Bookstore.
    • Es un buen texto, pero esa parte entristece y enoja.
      ¿Cómo llegamos al punto en que este estado de cosas se considera aceptable? MAGA(Microsoft Apple Google Amazon) ahora está asfixiando la vida de compartir software.
    • En varias entrevistas dije que sabía mucho sobre la firma de productos de Apple, pero todo fue conocimiento que aprendí sin querer.
  • Tenemos una app pequeña para uso interno de la empresa. Es solo una app Rails independiente y no toca los sistemas internos del negocio.
    Aun así, cuando necesitamos un lugar donde poner código pequeño, lo metemos ahí. Tiene herramientas de integración aleatorias como gráficos de crecimiento, un pequeño motor de búsqueda para datos internos, scripts de recordatorios para tareas repetitivas y un script RSS→Email para el blog.
    Ojalá todos tuvieran al menos una app de “tiliches” separada de los datos de clientes.
    Cuando la barrera para crear algo divertido es baja, la mente se libera, y no todo el código tiene que ser trabajo de negocio de alto riesgo.

    • Estoy aprendiendo RoR, así que me da curiosidad cómo lo desplegaron. ¿Es una webapp?