MaterialPageRoute |
Material 디자인 스타일로 페이지 전환하는 라우트 객체 |
밥아저씨
MaterialPageRoute |
Material 디자인 스타일로 페이지 전환하는 라우트 객체 |
Mobile-First Approach: With over 59.5% of web traffic originating from mobile devices, designing for mobile-first is no longer an option but a necessity. Responsive layouts, meta viewport tags, and layout simplifiers like Flexbox are pivotal to success in web development.
Page Speed Optimization: In today's fast-paced digital world, users expect websites to load instantly. Google's ranking algorithms prioritize fast-loading websites. Techniques like image compression, code minification, and content delivery networks (CDNs) are vital for optimal page loading times.
Voice Search Integration: Voice assistants are becoming integral to accessing information. Developers are optimizing websites for voice search, ensuring accessibility and adaptability to changing user preferences.
Gradient Colors and Glassmorphism: Gradient colors and glassmorphism design elements are enhancing visual appeal. Gradient designs bring creativity and personality to web interfaces, while glassmorphism adds depth and texture.
Progressive Web Applications (PWAs): PWAs combine web and mobile app features, offering seamless offline functionality and app-like experiences. They are gaining traction as versatile web solutions.
AI Chatbots: AI chatbots are improving customer service with round-the-clock support and streamlined interactions. They are employed for user engagement, answering queries, and initiating sales conversations.
Interconnected Web Applications: API-first development is fostering interconnected web applications. This trend enables seamless data sharing between apps, creating a more cohesive web experience.
As we enter 2023, web development's evolution is marked by these seven trends. Adapting to this dynamic landscape will be pivotal for web developers and businesses aiming to succeed in the digital realm. The web's future is exciting, and those who embrace these innovations will lead the way.
In the realm of mobile app development, React Native emerges as a prominent open-source framework created by Facebook. This powerful tool allows developers to craft mobile applications for iOS, Android, Web, and UWP simultaneously, all while writing code in JavaScript.
Understanding Cross-Platform Development
To fully grasp React Native's significance, it's crucial to understand the concept of cross-platform development. This approach enables developers to create applications that can run on multiple platforms, saving time and resources. React Native, alongside frameworks like Flutter, serves as a prime example of a cross-platform solution.
1. React Native Development Methods
React Native development can be approached in two primary ways: Expo CLI and React Native CLI.
A. Expo CLI
Pros:
Ease of Initial Setup: Expo CLI simplifies the setup process, making it incredibly straightforward for beginners.
Abundance of Libraries and Plugins: The Expo ecosystem offers a rich selection of libraries and plugins, enhancing development efficiency.
Cons:
App Size: Apps developed with Expo tend to have larger file sizes.
Build Speed: The build process might be slower compared to React Native CLI.
Limited Native Module Support: Expo restricts the usage of native modules, limiting certain functionalities.
B. React Native CLI
Pros:
Fast Build Speed: React Native CLI offers a quicker build speed compared to Expo.
High Freedom with Native Modules: Developers have greater freedom to use native modules.
Interaction with OS Layer: It enables direct interaction with the operating system layer.
Cons:
Complex Setup: Setting up a project with React Native CLI can be complex and time-consuming.
Platform-Specific Setup: You need to install Android Studio and Xcode for building and deploying on Android and iOS.
Mac OS Dependency: Building iOS apps requires a Mac OS environment.
2. Expo CLI Quickstart
To start with Expo CLI, follow these steps:
Create a React Native project using Expo: $ expo init [project name]
Install Expo globally: $ npm install -g expo-cli or $ yarn global add expo-cli
3. React Native CLI Quickstart
For React Native CLI, follow these steps:
Create a React Native project: $ npx react-native init [project name]
Optionally specify a version: $ npx react-native init [project name] --version X.XX.X
For TypeScript-based projects: $ npx react-native init [project name] --template react-native-template-typescript
Install types for React and React Native: $ yarn add @types/react @types/react-native --dev
In Conclusion
React Native is a game-changing framework that facilitates cross-platform mobile app development. Whether you opt for Expo CLI for its simplicity or React Native CLI for more advanced, platform-specific development, React Native provides a versatile toolkit for crafting efficient, responsive, and visually appealing mobile applications. Understanding your project's requirements and your own development expertise will help you choose the right approach. Happy coding!
1. pyinstall.exe -F main.py 실행해서 spec파일 생성
2. spec 파일에 아래와 같이 추가
datas=[
[
"C:\\Python311\\Lib\\site-packages\\autoit\\lib\\AutoItX3_x64.dll",
"autoit\\lib"
]
],
hiddenimports=["autoit.init", "autoit.autoit", "autoit.control",
"autoit.process", "autoit.win"],
3. pyinstall.exe main.spec 실행
참조
https://stackoverflow.com/questions/59190771/pyinstaller-oserror-cannot-load-autoitx-from-path
1. 클로저
x = 10 # 전역변수
def foo():
global x
x = 11
print(x)
foo()
print(x) # 출력
파이썬은 그냥 바로 선언하면 전역변수임
그 전역변수를 함수에서 사용하려면 global 로 지정해야됨
2. 언더바 사용
값을 무시하고 싶을때
x,_,y = 1,2,3
이렇게 선언하면 중간의 2 값은 무시하고
x는 1, y는 3으로 선언됨
x,*_,y = 1,2,3,4,5
이렇게하면 중간 값들은 다 생략하고 1, 5 만 선언됨
for을 사용할때 index가 필요 없을떄
for _ in range(10):
-> 인덱스가 필요없고 그냥 10번 반복하고 싶을때
메소드에 _가 붙을때
-> 외부 사용자가 사용하지 말라는 권유의 문법 / 만약 import * 를 하면 _가 앞에붙어있는 변수나 메소드는 호출이 되지 않음
-> 매직 메소드 / 클래스를 작성할때 __init__ , __str__ 등의 사용
3. dfs , bfs 파이썬으로 구현
def bfs(v):
q = deque()
q.append(v)
visit_list[v] = 1
while q:
v = q.popleft()
print(v, end = " ")
for i in range(1, n + 1):
if visit_list[i] == 0 and graph[v][i] == 1:
q.append(i)
visit_list[i] = 1
#스택
def dfs(v):
q = deque()
q.append(v)
while q:
v = q.pop()
if visit_list2[v] == 0:
visit_list2[v] = 1
print(v, end = " ")
temp = deque()
for i in range(1, n + 1):
if visit_list2[i] == 0 and graph[v][i] == 1:
temp.append(i)
temp.reverse()
q = q + temp
Scaffold - 화면 뼈대 역할 - 기본적으로 AppBar body floatingActionButton 같은걸 배치해줌 return Scaffold ( appBar : AppBar ( title : const Text ...