by Ing. Eluckie
Hace ya bastante tiempo decidí iniciar en el mundo de la programación. “Es útil y yo soy bueno en lógica” -pensé-, jajaja tal vez no fue como yo lo imaginé.
Después de casi dos años, y algunos proyectos universitarios, decidí que quería un desafío: hacer mi propio editor de texto. Así que hablaremos de mi experiencia creando una app para apuntar mis notas diarias, ¡no te lo pierdas!
¡Sean bienvenidos a una nueva entrega de ELUCKIE! El día de hoy les he preparado mi experiencia creando mi primera app (mi primer programa). Escogí crear una app de notas .txt utilizando Python y el framework Flet. Este es un desafío personal que creo que, sea este u otro, eventualmente llegaría, lo necesitaría, y gradualmente quiero mejorarlo.
Índice
- ¿Por qué un editor de texto?
- ¿Por qué hacer una app y no utilizar una ya hecha?
- Python y Flet
- IDE
- Funcionalidades de mi programa
- Futuro
- Referencias
1. ¿Por qué un editor de texto?
De entre todas las opciones que hay de proyectos para practicar, ¿por qué escogí un simple editor de textos? Bueno, esta respuesta tiene dos vertientes:
- La primera es porque soy una persona a la que le gusta el orden y documentar todo. De hecho, actualmente ya me encuentro utilizando la app Obsidian (la cual recomiendo mucho) para llevar un control sobre mis actividades diarias, los problemas a los que me enfrento y las soluciones que encuentre, entre otras cosas…
- La segunda parte de la respuesta coincide con el hecho de que, cuanto más estudio, más me doy cuenta que no sé nada 😂😂. Ok tal vez no tanto así.
Pero me encantaría aprender sobre cómo estructurar datos, leer y escribir ficheros, etc… cosas que deberían ser básicas con las que aún tengo problemas.
2. ¿Por qué rayos hacer una app desde cero y no simplemente usar una ya hecha?
Sí, lo sé. Es mucho más fácil, práctico y hasta productivo utilizar una app que alguien más ya hizo. Un programa por el que un desarrollador ya sufrió dolores de cabeza por nosotros.
Aparte del hecho que hago esto como un desafío que me permitirá aprender, también es el hecho de que casi ningún programa que haya usado me ha dejado completamente satisfecho. Seguramente estoy siendo muy exigente o tengo gustos raros jaja 😅.
El punto es que no he encontrado una pieza de software que cumpla al 100% con mis necesidades; o sí, pero es de paga mensual…
2.1 App que pudieran satisfacer mis necesidades, pero prefiero usar como inspiración.
Durante mi vida he utilizado varios programas para tomar notas, dentro de los cuales se encuentran:
- Obsidian (el que uso para gestionar mis actividades, bitácora y demás…)
- Notion
- OneNote
- Evernote
- Marktext
Las cuales no son poca cosa y todas tienen sus virtudes y sus puntos a mejorar.
En lo personal, yo recomiendo Obsidian ya que es la que más se ha adaptado a mis necesidades, la app es gratuita y ofrece un sistema de sincronización excelente con un costo super accesible ($5 USD/mes). Incluso, si te gusta juguetear, puedes implementar tu propia sincronización con OneDrive o Google Drive y no pagar la membresía, pero tiene sus fallas.
Notion también me encantó, especialmente porque te ofrece almacenamiento y sincronización completamente gratuitos. Sin embargo, tus archivos se guardan en los servidores de la empresa y estás limitado a un uso constante con internet… Lo cual para mí es un “deal breaker” desafortunadamente.
Si para ti no es un problema, Notion también cuenta con formatos ya hechos para organizar tus actividades, proyecto, colaboración en equipo y demás.
Del último que hablaré en este artículo es OneNote. Este es un programa de Microsoft que también es muy bueno, pero implementa un formato propietario que te obliga a siempre usar esa app en específico y, generalmente, con una licencia de Office 360. OneNote funciona excelente si eres estudiante, un creativo, o necesitas (casi literalmente) una “libreta” en tu computadora.
A mí me encantó porque compré la licencia de Office 2019, y precisamente la dejé porque cambié de computadora y no pude con el gasto de otra licencia.
Si conoces algún otro software que no haya mencionado, ¡házmelo saber!
3. Python y Flet
Decidí implementar estas dos herramientas principalmente por su facilidad de uso. En el caso de Flet es un framework de Python que permite hacer app multiplataforma. Y, en el caso de Python, porque es el lenguaje de programación que mejor domino de todos.
3.1 Hablemos de Flet
Este es un framework que nos permite realizar ligeras aplicaciones multiplataforma: web, escritorio y móvil. Está basado en una filosofía de estructura y funcionalidad similares a Flutter de Google [1]. Casi podríamos decir que es como utilizar Flutter con Python.
Como todo, esto cuenta con sus ventajas y sus desventajas. Dentro de las ventajas más notorias son:
- Su facilidad de uso: iniciar una app es MUY sencillo y escala relativamente bien.
- Se pueden realizar aplicaciones web, de escritorio y móviles.
- Bajo conocimiento inicial.
- Rápido desarrollo.
Y sus desventajas más notorias serían: - Funcionalidades un tanto “limitadas”.
- Compilar el código es tedioso y una pesadilla si usas MacOS.
- El paquete compilado termina siendo muy pesado.
- El código fuente puede ser vulnerado.
- entre otras que luego hablaremos…
4. El IDE a utilizar
En este apartado no hay mucho que comentar, no me quise romper la cabeza e implementé mi IDE de confianza: Visual Studio Code. El cual cuenta con una muy buena integración con Python, ya tengo mucha experiencia con, y (¿por qué no?) es gratuito 😊.
5. Funcionalidades de mi programa
Inicialmente comenté que sería una app simple que pudiera leer, escribir y crear archivos .txt. Objetivo el cual se cumplió con éxito, aunque su desarrollo no fue nada sencillo: muchas desveladas, dolores de cabeza y reestructurar varias veces la arquitectura.
De cualquier forma logré que mi software super sencillo hiciera los siguiente:
- Utilización instantánea: Recién inicias el software y ya puedes crear un .txt nuevo para que no se te olvide lo que estabas por anotar. Al terminar de plasmar tu primera idea puedes guardar el archivo y continuar editando como si nada.
- Crear, abrir, leer y escribir archivos .txt y .md (sin renderización de contenido aún 🥲).
- Creé igualmente 3 temas para cuidar tus ojos: tema claro, cálido y oscuro.
El código está aún por compartirse en GitHub como licencia GPL para que lo pruebes y lo utilices si es de tu agrado 😉.
6. Futuro
Sin duda aun me queda mucho de programación por aprender. Sin embargo, después de realizar este programa, verlo funcionando y utilizarlo como una herramienta más de mi laptop, me he sentido muy contento y entusiasmado a continuar desarrollando, a continuar compartiendo.
Espero que este aporte pueda ser de utilizada para alguien más aparte de mí. Y aún falta presentarlo a mis compañeros de trabajo.
Por otro lado, deseo expandir esta herramienta para que haga más cosas aparte de editar archivos .txt, como son:
- Editar archivos Markdown (.md) y renderizarlos en tiempo real como Obsidian o Notion.
- Editar archivos .csv e implementar funcionalidades con Javascript o Python.
- Diagramas.
- entre otras ideas locas…
¿Te late alguna utilidad? ¿O te gustaría que implementase alguna otra? ¡No olvides comentar! 😊
Asimismo, me he dado cuenta que si lo que quiero es ampliar las utilidades de mi programa, necesitaré ya sea otro framework o, incluso, otro lenguaje de programación.
Por facilidad me gustaría implementar TypeScript con React y Electron. De esta manera facilitaré el desarrollo y portabilidad a distintos sistemas. Sin embargo, considerando el peso total de mi aplicación, y las funcionalidades que llevará; quizás sea pertinente buscar un lenguaje de programación más veloz, como Java, y así no sacrificaría portabilidad entre MacOs y Windows. Diría Linux también porque soy fan, pero es algo que no puedo garantizar aún.
Despedida :3
Como siempre, muchas gracias por leer, ¿Qué te pareció? Deja tu comentario en la sección de abajo, estaré encantado de leerte.
¡Yo soy Ernesto Luckie y nos vemos en la siguiente entrega!
Esta es una página en la que hablamos de tecnología y cómo esta puede usarse para mejorar nuestra calidad de vida.
- Vlogs
- Artículos (como este)
- Shorts
- Gameplays
- Y hasta pequeñas contribuciones de mí para ti 😊
Aquí aprenderás, te divertirás, y si te lo propones, inventarás… No olvides seguirnos en nuestras redes sociales:
- YouTube: https://www.youtube.com/@3luckie
- Twitter (X): https://x.com/3luckie
- Facebook: https://www.facebook.com/profile.php?id=100092632218196
- TikTok: https://www.tiktok.com/@eluckie
- Thingiverse (modelos 3D): https://www.thingiverse.com/eluckie/designs
- GitHub: https://github.com/EALuckie
- Patreon: https://www.patreon.com/c/eluckie
- Página azul 💙: No chetooo 🤣 (aun no… 😏)
También puedes acceder a mi tienda en línea donde encontrarás gadgets, componentes electrónicos, proyectos, módulos, domótica, impresión 3D y demás… Entra a https://kalecon.com